2012-05-29 6 views
0

Ну, я разрабатываю аддон firefox, который автоматически обновляет заданный набор URL-адресов с некоторой модификацией. Невозможно показать весь код. Итак, я только что скопировал часть кода, которая дает мне ошибку.События DOMContentLoaded перестают запускаться. Зачем?

Событие DOMContentLoaded должно быть инициировано всем, на что загружена страница, и делает это правильно. Проблема в том, что если я открываю новую вкладку, то событие DOMContentLoaded не запускается на старой вкладке.

//Any code here runs only for the first time u start the browser 
window.addEventListener("load", function() { myExtension.init(); }, false); 

var myExtension = { 
init: function()  
{ 
      var appcontent = document.getElementById("appcontent"); 
      if(appcontent) 
      appcontent.addEventListener("DOMContentLoaded", myExtension.onPageLoad, true); 
}, 

onPageLoad: function(aEvent) 
{ 

    var doc = aEvent.originalTarget; // doc is document triggered "onload" event 
    //execute on one the top page (not on iframes) 
     if ((aEvent.originalTarget.nodeName == '#document') && (aEvent.originalTarget.defaultView.location.href == gBrowser.currentURI.spec)) 
     {setTimeout(function(){showInError(doc.location='about:home'}, 500);} 
}, 
} 

Я хотел бы написать эту проблему простым путем (извините за мой плохой английский)

1) я запустить Firefox, и вкладку (скажем вкладку №1) постоянно перезагружается, как я хочу.

2) закладка no.1 продолжает загружать несколько раз, если я оставить страницу бесперебойный (это то, что он хочет)

3) если я открыть новую вкладку (вкладка сказать нет. 2), новый вкладка (вкладка № 2) начинает перезагружаться непрерывно, как я хотел. Однако вкладка №. 1 остановка перезагрузки.

Что я хочу, так это продолжать перезагрузку обоих вкладок № 1 и вкладки №. 2. Как это сделать? что не так, мой код?

ответ

0

Похоже, что вы выполняете скрипт только на текущей странице (активная вкладка).

Если вы хотите выполнить его на других вкладках, вы должны присоединить слушателей событий к новым вкладкам при их открытии (и не забудьте удалить их, когда вы закроете вкладку). Вы можете получить полезные фрагменты для этой функции на этой странице:

https://developer.mozilla.org/en/XUL_School/Intercepting_Page_Loads#WebProgressListeners