【问题标题】:Firefox Addon (Observer) http-on-modify-request does not get triggeredFirefox 插件(观察者)http-on-modify-request 没有被触发
【发布时间】: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


    【解决方案1】:

    好的,我找到了答案,我真的不知道为什么会这样,但是,它来了:

    “观察者”函数在我的代码中的调用方式需要被称为“观察”。

    真的 - 烦人。

    【讨论】:

      猜你喜欢
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多