Javascript firefox加载项:退出应用程序观察程序不工作

Javascript firefox加载项:退出应用程序观察程序不工作,javascript,firefox,firefox-addon,Javascript,Firefox,Firefox Addon,我已经尝试使用观察员有一段时间了,但似乎我无法让他们工作。我把observe函数放在扩展的不同模块中,也放在代码的不同部分。从各地注册,但似乎我尝试的每一种方式都只是一种沉闷。我不能让它工作。我的目标是监听用户何时退出Firefox,以便清除插件的首选项对象。到目前为止,我的观察者位于bootstrap.js中,我就是这样实现它的。我以这种方式实现了我的观察函数,因为stackoverflow帖子中提到,这是观察退出应用程序通知的正确方式。在旁注中,注册的观察者会在控制台日志中打印,但“oh o

我已经尝试使用观察员有一段时间了,但似乎我无法让他们工作。我把observe函数放在扩展的不同模块中,也放在代码的不同部分。从各地注册,但似乎我尝试的每一种方式都只是一种沉闷。我不能让它工作。我的目标是监听用户何时退出Firefox,以便清除插件的首选项对象。到目前为止,我的观察者位于bootstrap.js中,我就是这样实现它的。我以这种方式实现了我的观察函数,因为stackoverflow帖子中提到,这是观察退出应用程序通知的正确方式。在旁注中,注册的观察者会在控制台日志中打印,但“oh observing”不会

这是我的启动功能:

    function startup(data, reason) {
      Components.utils.import("chrome://ext/content/commons.jsm");
      let wm = Cc["@mozilla.org/appshell/window-mediator;1"].
               getService(Ci.nsIWindowMediator);

      let windows = wm.getEnumerator("navigator:browser");
      while (windows.hasMoreElements()) {
        let domWindow = windows.getNext().QueryInterface(Ci.nsIDOMWindow);

        WindowListener.setupBrowserUI(domWindow);

      }

  // Wait for any new browser windows to open
  wm.addListener(WindowListener);

}
这是我的setupBrowserUI函数,我在其中注册了观察者:

  setupBrowserUI: function(domWindow) {
    extension.onLoad(domWindow.gBrowser);
    observer = new myObserver();
  }
简单的方法:

我的建议是创建一个带有首选项的日志文件;要将转储调用输出到文件,请将browser.dom.window.dump.file设置为应该创建日志的文件目标,然后重新启动应用程序

  setupBrowserUI: function(domWindow) {
    extension.onLoad(domWindow.gBrowser);
    observer = new myObserver();
  }
let observer = {
  observe: function() {
         dump("oh observing")
  }
};

function startup(data, reason)
{
  Services.obs.addObserver(observer, "*", false);
  observer.observe();
}