gBrowser.addEventListener:“load”事件被触发三次

时间:2010-08-12 10:42:57

标签: 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);

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

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

谢谢理查德

1 个答案:

答案 0 :(得分:1)

我建议你做这样的事情:

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);

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

希望这有帮助。

米哈尔