javascript - gBrowser.addEventListener : "load" event fired three times

标签 javascript firefox-addon onload

我已经安装了 Firefox 扩展的“hello world”开发示例,如下所述: http://blog.mozilla.com/addons/2009/01/28/how-to-develop-a-firefox-extension/

我修改了传递给 gBrowser.addEventListener 的匿名函数:

gBrowser.addEventListener("load", function (event) {

    var t = event.target;
    alert("Content title: " + t.contentTitle);          

}, false);

每次加载页面时都会调用该函数 3 次。当我单击一个链接时,它会为当前(已加载的页面)触发两次,为新页面触发一次。

我已经卸载了所有其他插件(包括 Firebug),但它仍然会触发 3 次。有谁知道为什么会这样?

谢谢理查德

最佳答案

我建议你这样做:

window.addEventListener("load", function load() {
                    window.removeEventListener("load",load,false); //no longer needed
                    window.gBrowser.addEventListener('DOMContentLoaded', function load(event) {
                    your_addon.init_function(event);
                    }, false);

在我的插件中它有效。 :-)

希望这对您有所帮助。

迈克尔

关于javascript - gBrowser.addEventListener : "load" event fired three times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3466804/

相关文章:

javascript - 在第一次加载时更快地加载 javascript

javascript - 是否有现代社区可以分享使用 SuiteScript 2.0 的人员的知识和最佳实践?

javascript - 来自 Firefox 附加组件的内容脚本不会写入 IndexedDB

javascript - 使用 for 循环嵌入值

CoCreateInstance 在控制台应用程序中挂起

javascript - 获取 api 在 webextensions 中不起作用

javascript - 如何在 Javascript 中收到图像尺寸可用的提醒?

javascript - 无法根据 If 语句显示 Div

javascript - 将逻辑移至 Angular 中的服务

javascript - 无法让 for 循环正确循环