Vos résultats de recherche

    Sur un chargement de page

    Cet article est dédié aux développeurs XUL/JavaScript qui désirent exécuter un code personnalisé à chaque fois qu'une nouvelle page est chargée dans le navigateur ou courrieleur. Si vous désirez obtenir un contrôle plus précis pour l'exécution du code personnalisé, par exemple lorsque des documents se chargent ou qu'un onglet est sélectionné, consultez les scrutateurs de progression.

    Les scrutateurs de progression permettent aux extensions de recevoir la notification des événements associés aux chargements de documents dans le navigateur et aux changements de la sélection d'onglets. Ils implémentent l'interface nsIWebProgressListener.

    Création d'un overlay

    Tout d'abord, vous devez créer un overlay de l'un (ou plus selon quelle application vous ciblez) des documents XUL suivants :

    ApplicationURI de l'overlay
    Firefoxchrome://browser/content/browser.xul
    Thunderbirdchrome://messenger/content/messenger.xul
    Navigator de Seamonkeychrome://navigator/content/navigator.xul

    Attachement d'un script

    Attachez un script à votre overlay, et ajoutez un scrutateur d'événement load à l'élément appcontent (navigateurs) ou messagepane (messagerie) grâce au code dans ce script :

    window.addEventListener("load", function() { myExtension.init(); }, false);
    
    var myExtension = {
      init: function() {
        var appcontent = document.getElementById("appcontent");   // navigateur
        if(appcontent)
          appcontent.addEventListener("load", this.onPageLoad, true);
        var messagepane = document.getElementById("messagepane"); // messagerie
        if(messagepane)
          messagepane.addEventListener("load", this.onPageLoad, true);
      },
    
      onPageLoad: function(aEvent) {
        var doc = aEvent.originalTarget; // doc est le document qui a déclenché l'événement "onload"
        // Faire ici quelque chose avec la page chargée.
        // doc.location est un objet Location (voir plus bas pour un lien).
        // Vous pouvez l'utiliser pour n'exécuter votre code que sur certaines pages.
        if(doc.location.href.search("forum") > -1)
          alert("une page de forum est chargée");
      }
    }
    

    Les nocturnes actuelles du tronc de Firefox vont également déclencher la fonction onPageLoad pour autre chose que des documents, comme xul:images (favicons dans la barre d'onglets). Si vous voulez seulement gérer des documents, testez aEvent.originalTarget.nodeName == "#document" bug 329514.

    Références

    Étiquettes et contributeurs liés au document

    Étiquettes :
    Contributeurs ayant participé à cette page : Chbok, Elethiomel
    Dernière mise à jour par : Elethiomel,