2010-08-12 3 views
2

j'ai installé le « bonjour monde » exemple de dev pour les extensions de Firefox comme décrit ici: http://blog.mozilla.com/addons/2009/01/28/how-to-develop-a-firefox-extension/gBrowser.addEventListener: événement « charge » a tiré trois fois

J'ai modifié la fonction anonyme qui est passé à gBrowser.addEventListener :

gBrowser.addEventListener("load", function (event) { 

    var t = event.target; 
    alert("Content title: " + t.contentTitle);   

}, false); 

Cette fonction est appelée trois fois pour chaque chargement de page. Lorsque je clique sur un lien, il se déclenche deux fois pour la page en cours (déjà chargée) et une fois pour la nouvelle page.

J'ai désinstallé tous les autres addons (y compris Firebug) et il se déclenche 3 fois. Est-ce que quelqu'un sait pourquoi cela pourrait être?

Merci Richard

+0

Je pense que c'est un double: http://stackoverflow.com/questions/3470961/onload-called-multiple-times-from-firefox-extension/ – MatrixFrog

+0

oui il est. et votre réponse est correcte. –

Répondre

1

Je vous recommande de faire quelque chose comme ceci:

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

Dans mon addon cela fonctionne. :-)

Espérons que cela aide.

Michał

Questions connexes