【发布时间】:2015-11-02 06:20:35
【问题描述】:
我正在尝试使用 jpm 和文本编辑器编写一个非常简单的插件,但是我遇到了这个问题:
我得到这个代码来观察 HTTP 请求标头:
var {Cc, Ci} = require("chrome");
console.log("inside test");
var httpRequestObserver = {
observer: function(subject, topic, data){
console.log("inside observer definition");
if(topic == "http-on-modify-request") {
var httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
console.log("done what i should do");
}
},
get observerService(){
console.log("registered");
return Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
},
register: function(){
console.log("registering");
this.observerService.addObserver(httpRequestObserver, "http-on-modify-request", false);
},
unregister: function(){
console.log("unregistering");
this.observerService.removeObserver(httpRequestObserver, "http-on-modify-request");
}
};
exports.httpRequestObserver = httpRequestObserver;
然后像这样从另一个 .js 文件运行它:
require("./theothercode.js").httpRequestObserver.register();
但是,我在控制台中的输出如下所示:
console.log: myplugin: inside test
console.log: myplugin: inside main
console.log: myplugin: registering
console.log: myplugin: registered
然后它就停止做任何事情,即使我随机上网(应该产生一些相当数量的标题,因此应该触发我的“观察者”功能)。
我错过了什么吗?我还是 Java Script 的新手,不是很喜欢它。 我已经阅读了一些 Mozilla 指南和其他关于此的帖子,但他们似乎没有和我一样的问题。
总结:我的observer()函数永远不会运行,为什么?
【问题讨论】:
标签: javascript http firefox header mozilla