Расширение Firefox: добавление новой вкладки, но addEventListener не работает - PullRequest
0 голосов
/ 28 ноября 2011

Появляется диалоговое окно, и я определяю функцию 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 голосов
/ 28 ноября 2011

В вашем коде есть некоторые проблемы, которые, вероятно, просто некорректны при копировании и вставке: ondialogaccept:ondialogaccept="OnAccept()" должно быть ondialogaccept="OnAccept()" и OnAccept(): должно быть OnAccept: (без скобок).

Основная проблема:load прослушиватель событий не передается из контента в chrome, вам нужно обработчики прогресса , чтобы получить это событие.Однако вы можете прослушать событие DOMContentLoaded, которое может быть зафиксировано в элементе браузера.Это событие будет запускаться, когда загружается только содержимое документа, а не изображения и т. П., Но, возможно, это нормально для вас.

...