Firefox扩展开发:只加载一次事件

时间:2013-12-30 11:18:21

标签: events firefox plugins load

我正在为firefox开发一种信息亭系统。因此,每次单击链接并加载新页面/文档时,我都需要监听加载事件。我在js文件中使用它来实现:

window.addEventListener('load', function () {

    gBrowser.addEventListener('DOMContentLoaded', function () {
        alert("load");
    }, false);
}, false);

但是,如果我打开新的浏览器窗口而不是重新加载或加载其他内容,则仅触发该事件。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

您应该使用nsIWindowWatcher服务来执行此操作:

let {Services} = Cu.import("resource://gre/modules/Services.jsm", {});

function windowObserver(aSubject, aTopic, aData) {
  if (aTopic == "domwindowopened") {
    let win = aSubject.QueryInterface(Ci.nsIDOMWindow);

    // Do stuff here
  }
}

// To start watching windows do this
Services.ww.registerNotification(windowObserver);

// To stop watching windows do this
Services.ww.unregisterNotification(windowObserver);