Eine Thunderbird-Erweiterung programmieren 6: JavaScript hinzufügen

In diesem Schritt erstellen wir ein kleines Stück JavaScript-Code, der das aktuelle Datum ins Statusleisten-Widget einfügt. Die Statusleiste wird normalerweise am unteren Rand des Thunderbird-Fensters angezeigt. Je nach installiertem Theme sieht das Ergebnis etwa so aus:

current_date.png

XUL Elemente mit JavaScript modifizieren

Speichere den folgenden JavaScript-Code im content/ Ordner neben der Datei myhelloworld.xul und nenne ihn overlay.js.
window.addEventListener("load", function(e) { 
	startup(); 
}, false);

window.setInterval(
	function() {
		startup(); 
	}, 60000); //Aktualisiert das Datum jede Minute

function startup() {
	var myPanel = document.getElementById("my-panel");
	var date = new Date();
	var day = date.getDay();
	var dateString = date.getFullYear() + "." + (date.getMonth()+1) + "." + date.getDate();
	myPanel.label = "Date: " + dateString;
}

Der erste Teil registriert einen neuen Ereignis-Listener, der beim Laden von Thunderbird automatisch ausgeführt wird. Der Ereignis-Listener ruft dann die Startup-Funktion auf, die unser <statusbarpanel> -Element mit der ID my-panel aus dem DOM-Tree des Dokuments erhält.Dann verwendet es die Date-Klasse von JavaScript, um das aktuelle Datum abzurufen, das in eine String konvertiert wird, der das Format YYYY.MM.DD hat.Da der Monat nullbasiert ist, müssen wir beim Monat eins addieren. Schließlich wird das Label unseres Panels auf "Date:" gesetzt und mit der Datums-String verkettet, die das formatierte Datum enthält.

Wir verwenden die Funktion window.setInterval, um das Datum zu aktualisieren, falls Thunderbird länger als einen Tag läuft.. Dadurch können wir die Startup-Funktion wiederholt mit einem Intervall von 60000 ms (jede Minute) aufrufen.

Weitere Dokumentation

Weitere Funktionen für die DOM-Objekte findest du unter:

Das Javascript Cheat Sheet kann auch sehr nützlich sein.

Schlagwörter des Dokuments und Mitwirkende

Mitwirkende an dieser Seite: MVXl
Zuletzt aktualisiert von: MVXl,