Firefox扩展:添加新选项卡,但addEventListener不起作用

时间:2011-11-28 07:01:54

标签: firefox firefox-addon addeventlistener

有一个对话框,我定义了一个函数OnAccept()并将其称为:ondialogaccept:ondialogaccept="OnAccept()"

OnAccept():
    function OnAccept() {
        var windowManager = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService();
        var windowManagerInterface = windowManager.QueryInterface( Components.interfaces.nsIWindowMediator );
        var topWindow = windowManagerInterface.getMostRecentWindow( "navigator:browser" );
        if(topWindow)
        {
            var web = topWindow.document.getElementById("content");
            web.selectedTab = web.addTab("http://www.google.com");
            var newBrowserHandle = web.getBrowserForTab(web.selectedTab);
            newBrowserHandle.addEventListener("load", function() { alert("111"); }, true);
        }
    }

addEventListener不起作用。我不知道为什么。

1 个答案:

答案 0 :(得分:0)

您的代码中存在一些问题,可能只是错误的复制和粘贴:ondialogaccept:ondialogaccept="OnAccept()"应该是ondialogaccept="OnAccept()"OnAccept():应该是OnAccept:(没有括号)。< / p>

主要问题:load事件侦听器未从内容传播到chrome,您需要progress listeners才能获得该事件。您可以收听DOMContentLoaded事件,但可以在浏览器元素上捕获该事件。只加载文档内容时会触发此事件,而不是图像等 - 但也许这对你没用。