Javascript Firefox插件-如何发出http请求
我正在尝试开发我的第一个Firefox插件,它应该在单击toolabar按钮后在当前选项卡中打开指定的url。 它还应该能够在发出此请求之前修改标题、cookie、推荐人等 我找到了这个关于modyfing请求头的教程,但它似乎不适合我 我的插件main.js如下所示:Javascript Firefox插件-如何发出http请求,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我正在尝试开发我的第一个Firefox插件,它应该在单击toolabar按钮后在当前选项卡中打开指定的url。 它还应该能够在发出此请求之前修改标题、cookie、推荐人等 我找到了这个关于modyfing请求头的教程,但它似乎不适合我 我的插件main.js如下所示: var {ToggleButton}= require("sdk/ui/button/toggle"); var { Cc, Cu, Ci, components } = require('chrome'); var chan
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(),但对于服务器外部的url,它不起作用。
有什么建议吗
哪个应该在当前选项卡中打开指定的url
XHR只执行请求并将接收到的内容返回到javascript回调,不会将任何内容加载到网页中
相反,您应该只设置选项卡的url并修改http连接的请求头,当加载选项卡时,firefox将通过使用一个url截获它,从而自动发出http连接。
SDK的模块提供了对observer事件的方便访问。非常感谢,我将尝试一下!