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
- DOMContentLoaded Ereignis in Anhören von Veranstaltungen: Einfache DOM-Ereignisse