gBrowser.addEventListener: событие «load» сработало три раза - PullRequest
2 голосов
/ 12 августа 2010

Я установил пример разработки "hello world" для расширений Firefox, как описано здесь: 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 Ответ

1 голос
/ 30 июля 2013

Я бы порекомендовал вам сделать что-то вроде этого:

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

В моем аддоне это работает. : -)

Надеюсь, это поможет.

Михал

...