Firefox附加组件-如何发出http请求

齐奥姆·齐奥马尔斯基

我正在尝试开发我的第一个Firefox插件,在单击toolabar按钮后,该插件应在当前选项卡中打开指定的url。在发出此请求之前,它还应该能够修改标题,cookie,引荐来源网址等。

我发现本教程https://developer.mozilla.org/en-US/docs/Creating_Sandboxed_HTTP_Connections关于修改请求标头,但对我似乎不起作用。

我的插件main.js看起来像这样:

var {ToggleButton}= require("sdk/ui/button/toggle");
var { Cc, Cu, Ci, components } = require('chrome');

var channel;

function StreamListener(function(data){console.log(data);}) {
   this.mCallbackFunc = aCallbackFunc;
}

StreamListener.prototype = {
    //code pasted from 'HTTP notifications' from previously mentioned link
};

// get an listener
var listener = new StreamListener(function(data){console.log(data)});

var button = ToggleButton({
    id: "refresh-page",
    label: "Refresh Page",
    icon: {
        "16": "./icon-16.png",
        "32": "./icon-32.png",
        "64": "./icon-64.png"
    },
    onChange: function (state) {
        if (state.checked === true) {
            // the IO service
            var ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);

            // create an nsIURI
            var uri = ioService.newURI('http://google.com', null, null);

            var channel = ioService.newChannelFromURI(uri);

            channel.notificationCallbacks = listener;
            channel.open(listener, null);

        }
  }
 });

单击Firefox工具栏中的按钮后,没有任何反应。在控制台中不会引发任何错误。我想我在这里想念什么,但不确定。我试图将创建的通道添加到XMLHttpRequest(https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest),但是它不适用于服务器外部的url。有什么建议?

the8472

应该在当前选项卡中打开指定的URL

XHR只是执行请求,并将接收到的内容返回到javascript回调中,它们不会将任何内容加载到网页中。

取而代之的是,您应该只设置选项卡的url并修改在加载选项卡时由firefox自动发出的http连接的请求标头,方法是使用http观察器对其进行拦截SDK的系统/事件模块可方便地访问观察者事件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Capybara和Selenium安装Firefox附加组件?

来自分类Dev

我的附加组件如何与Firefox Reader View交互?

来自分类Dev

如何在Firefox附加组件中进行跨域请求?

来自分类Dev

Firefox附加组件可以针对非HTML请求(例如图像)运行吗?

来自分类Dev

如何在Firefox附加组件中避免出现“ TypeError:无法访问死对象”状态?

来自分类Dev

如何在Firefox附加组件中向子进程发送消息,例如Chrome本机消息

来自分类Dev

如何在Firefox附加组件中获取右键单击的选项卡的URL

来自分类Dev

如何在没有附加组件的情况下禁用Firefox中的弹出窗口?

来自分类Dev

Firefox附加组件如何链接上下文菜单和面板小部件

来自分类Dev

如何知道哪个内容脚本与 Firefox 附加组件中的后台通信?

来自分类Dev

如何使用新的 WebExtensions 附加组件更改 Firefox 选项卡颜色?

来自分类Dev

如何从 Firefox 附加组件读取配置文件首选项?

来自分类Dev

如何在reactjs中附加组件

来自分类Dev

如何在Excel中使用附加组件获取值=不包含附加组件的值。

来自分类Dev

Firefox的下一个版本:如何*轻松*检查扩展名/附加组件兼容性?

来自分类Dev

Firefox字典附加组件

来自分类Dev

Firefox for Ubuntu附加组件

来自分类Dev

Firefox for Ubuntu附加组件

来自分类Dev

WooCommerce:如何显示“产品附加组件”扩展中的字段?

来自分类Dev

如何使用附加组件打开新标签页?

来自分类Dev

如何附加组件并读取其值[SwiftUI]

来自分类Dev

我如何开始构建Jwplayer插件(附加组件)?

来自分类Dev

在Firefox附加组件中,如何在将事件侦听器添加到整个浏览器窗口时解决错误“未定义窗口”?

来自分类Dev

Firefox附加组件SDK入门

来自分类Dev

在Firefox附加组件上使用Blob

来自分类Dev

FireFox附加组件未出现

来自分类Dev

Firefox的“忘记站点”功能或附加组件

来自分类Dev

强制Firefox安装附加组件

来自分类Dev

在Firefox中分析附加组件

Related 相关文章

  1. 1

    如何使用Capybara和Selenium安装Firefox附加组件?

  2. 2

    我的附加组件如何与Firefox Reader View交互?

  3. 3

    如何在Firefox附加组件中进行跨域请求?

  4. 4

    Firefox附加组件可以针对非HTML请求(例如图像)运行吗?

  5. 5

    如何在Firefox附加组件中避免出现“ TypeError:无法访问死对象”状态?

  6. 6

    如何在Firefox附加组件中向子进程发送消息,例如Chrome本机消息

  7. 7

    如何在Firefox附加组件中获取右键单击的选项卡的URL

  8. 8

    如何在没有附加组件的情况下禁用Firefox中的弹出窗口?

  9. 9

    Firefox附加组件如何链接上下文菜单和面板小部件

  10. 10

    如何知道哪个内容脚本与 Firefox 附加组件中的后台通信?

  11. 11

    如何使用新的 WebExtensions 附加组件更改 Firefox 选项卡颜色?

  12. 12

    如何从 Firefox 附加组件读取配置文件首选项?

  13. 13

    如何在reactjs中附加组件

  14. 14

    如何在Excel中使用附加组件获取值=不包含附加组件的值。

  15. 15

    Firefox的下一个版本:如何*轻松*检查扩展名/附加组件兼容性?

  16. 16

    Firefox字典附加组件

  17. 17

    Firefox for Ubuntu附加组件

  18. 18

    Firefox for Ubuntu附加组件

  19. 19

    WooCommerce:如何显示“产品附加组件”扩展中的字段?

  20. 20

    如何使用附加组件打开新标签页?

  21. 21

    如何附加组件并读取其值[SwiftUI]

  22. 22

    我如何开始构建Jwplayer插件(附加组件)?

  23. 23

    在Firefox附加组件中,如何在将事件侦听器添加到整个浏览器窗口时解决错误“未定义窗口”?

  24. 24

    Firefox附加组件SDK入门

  25. 25

    在Firefox附加组件上使用Blob

  26. 26

    FireFox附加组件未出现

  27. 27

    Firefox的“忘记站点”功能或附加组件

  28. 28

    强制Firefox安装附加组件

  29. 29

    在Firefox中分析附加组件

热门标签

归档