2010-02-10 5 views
2

J'essaye de capturer un événement de chargement de page tout en développant une extension pour firefox. J'utilise ProgressListeners pour cela. Je ne peux pas utiliser l'événement de changement onLocation car il déclenche un événement chaque fois que l'utilisateur change d'onglet. Je veux juste me connecter à chaque nouvelle page qu'il a visitée. OnProgressChange fonctionne pour moi, mais cela est déclenché plusieurs fois par page. Comment puis-je enregistrer ceci pour une entrée par page. Y a-t-il un autre événement que je dois écouter?Firefox Extension: onProgressChange appelé plusieurs fois

Merci à l'avance ..

Répondre

0

onProgressChange est utilisé pour les notifications sur les progrès, donc bien sûr, il est appelé plusieurs fois.

Vous voyez onLocationChange lorsque l'utilisateur change d'onglet car vous attachez l'écouteur de progression au sous-onglet, et non à un onglet individuel.

Vous pouvez essayer listening to (progress) events on all tabs - commencez par déverser tous les événements que vous obtenez et choisissez onLocationChange ou onStateChange en fonction de ce dont vous avez besoin.

0

Vous pouvez capturer des charges de page en attachant un écouteur DOMContentLoaded à l'élément appcontent dans chaque fenêtre chromée. Comme ceci:

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

La méthode LoadTest.onload sera exécutée quand une nouvelle charge de fenêtre en chrome. La fonction d'écoute pour DOMContentLoaded se chargera chaque fois qu'une page est visitée ou qu'un onglet est ouvert.

Questions connexes