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