Расширение Firefox: onProgressChange вызывается несколько раз - PullRequest
2 голосов
/ 11 февраля 2010

Я пытаюсь захватить событие загрузки страницы при разработке расширения для Firefox. Я использую ProgressListeners для этого. Я не могу использовать событие изменения onLocation, потому что оно генерирует событие каждый раз, когда пользователь переключает вкладку. Я просто хочу регистрировать каждую новую страницу, которую он посетил. OnProgressChange работает для меня, но это запускается несколько раз на страницу. Как мне записать это для одной записи на странице. Есть ли какое-либо другое событие, которое мне нужно слушать?

Заранее спасибо ..

Ответы [ 2 ]

0 голосов
/ 03 марта 2011

Вы можете захватить загрузку страницы, подключив прослушиватель DOMContentLoaded к элементу appcontent в каждом окне Chrome. Как это:

var LoadTest = {
    // chrome window loaded
    onload: function() {
        var appContent = document.getElementById("appcontent");
        appContent.addEventListener("DOMContentLoaded", function(e) {
            alert("page loaded");
        }, true);
    }
};

window.addEventListener("load", LoadTest.onload, false);

Метод LoadTest.onload будет выполняться при загрузке нового окна Chrome. Функция прослушивания для DOMContentLoaded будет загружаться при каждом посещении страницы или открытии вкладки.

0 голосов
/ 11 февраля 2010

onProgressChange используется для уведомлений о прогрессе, поэтому, конечно, он вызывается несколько раз.

Вы видите onLocationChange, когда пользователь переключает вкладки, потому что вы присоединяете обработчик прогресса к браузеру вкладок, а не к отдельной вкладке.

Вы можете попробовать прослушивание (прогресс) событий на всех вкладках - начать с вывода всех полученных событий и выбрать onLocationChange или onStateChange в зависимости от того, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...