On page load

Diese Übersetzung ist unvollständig. Bitte helfen Sie, diesen Artikel aus dem Englischen zu übersetzen.

Dieser Artikel ist für XUL / JavaScript-Entwickler, die benutzerdefinierte Code haben wollen jedes Mal eine neue Seite wird im Browser / Mail geladen ausgeführt. Wenn Sie genauere Kontrolle über benutzerdefinierte Code-Ausführung, zum Beispiel benötigen, wie Dokumente Laden oder wenn Registerkarten schalteten sehen Fortschritt Hörer.

Fortschritte Zuhörern ermöglichen Erweiterungen der Ereignisse mit Dokumenten Laden in den Browser und mit Tab Umschalten Ereignissen benachrichtigt werden. Fortschritte Zuhörer Umsetzung der nsIWebProgressListener Schnittstelle.

Erstellen eines Overlays

Zuerst müssen Sie einen erstellen, Überlagerung, um eine (oder mehrere, je nachdem, welche Anwendungen Sie zielen) der folgenden XUL-Dokumente:

Anwendung URI zu überlagern
Firefox chrome: //browser/content/browser.xul
Thunderbird chrome: //messenger/content/messenger.xul
Navigator von SeaMonkey chrome: //navigator/content/navigator.xul

Anbringen eines Skripts

Bringen Sie ein Skript, um Ihre einblenden (siehe "Anbringen eines Skripts zum Erstellen einer Overlay"), die eine fügt Last Ereignis-Listener APPCONTENT Element (Browser) oder messagepane (mail):

window.addEventListener ("load", Funktion load (event) {
    window.removeEventListener ("load", Last, false); // Listener zu entfernen, nicht mehr benötigt
    myExtension.init ();  
},falsch);

var myextension = {
  init: function () {
    var APPCONTENT = document.getElementById ("APPCONTENT"); // Browser
    if (APPCONTENT) {
      appcontent.addEventListener ("DOMContentLoaded", myExtension.onPageLoad, true);
    }
    var messagepane = document.getElementById ("messagepane"); // Mail
    if (messagepane) {
      messagepane.addEventListener ("load", function (event) {myExtension.onPageLoad (event);}, true);
    }
  }

  onPageLoad: function (Aevent) {
    var doc = aEvent.originalTarget; // Doc ist Dokument, das "onload" Ereignis ausgelöst
    // Do something mit der geladenen Seite.
    // Doc.location ist ein Location-Objekt (siehe unten für einen Link).
    // Sie können es verwenden, um Ihren Code auf nur bestimmte Seiten ausgeführt.
    if (doc.location.href.search ("Forum")> -1)
      alert ("ein Forum, geladen wird");
    
    // Zur Seite Entladen hinzufügen Ereignis-Listener 
    aEvent.originalTarget.defaultView.addEventListener ("Entladen", function (event) {myExtension.onPageUnload (event);}, true);
  }

  onPageUnload: function (Aevent) {
    // Tu etwas
  }
};

Aktuelle Firefox Stamm Night die onPageLoad Funktion nicht nur für Dokumente, Feuer, aber xul: Bilder (Favicons in Tabbrowser). Wenn Sie nur wollen, Dokumente zu verarbeiten, zu gewährleisten aEvent.originalTarget.nodeName == "#document".

Wenn Sie mit Code auf einer Seite zu laden, ist es wahrscheinlich, würden Sie wollen, um etwas Bereinigungscode auf Seite Entladen laufen. Um in das Unload-Ereignis im obigen Beispiel können Sie den "pagehide" Veranstaltung wie diese verwenden zu befestigen:

appcontent.addEventListener ("pagehide", myExtension.onPageUnload, false);

für APPCONTENT und ähnlich für messagepane

messagepane.addEventListener ("pagehide", myExtension.onPageUnload, false);

und fügen Sie den Code zur onPageUnload Methode.

 

 

Grund onPageLoad für ein Browser-Fenster

var myextension = {
    init: function () {
        // Das Ereignis kann DOMContentLoaded werden, pageshow, pagehide, laden oder entladen.
        if (gBrowser) gBrowser.addEventListener ("DOMContentLoaded", this.onPageLoad, false);
    }
    onPageLoad: function (Aevent) {
        var doc = aEvent.originalTarget; // Doc ist Dokument, das das Ereignis ausgelöst hat
        var win = doc.defaultView; // Sieg ist das Fenster für den doc
        // Test gewünschten Bedingungen und etwas tun,
        // If (doc.nodeName = "#document"!) Return; // Nur Dokumente
        // If (Sieg = win.top!) Return; // nur Top-Fenster.
        // If (win.frameElement) return; // Überspringen iframes / Rahmen
        alert ("Seite geladen wird \ n" + doc.location.href);
    }
}
window.addEventListener ("load", Funktion load (event) {
    window.removeEventListener ("load", Last, false); // Listener zu entfernen, nicht mehr benötigt
    myExtension.init ();  
},falsch);

Referenzen

  • Wenn Sie brauchen, um eine kompliziertere Hörer (nicht nur onload) haben, verwenden Fortschritt Hörer.

Sehe auch

Schlagwörter des Dokuments und Mitwirkende

 Mitwirkende an dieser Seite: fscholz, javamaster999
 Zuletzt aktualisiert von: fscholz,