JavaScript zur Nacht

Nach einem mehr oder minder Durchhänger-Tag (aber was will ich erwarten wenn ich morgens so wie heute geweckt werde?) habe ich noch ein kleines Betthupferl. Selbst beim einkaufen im Supermarkt meiner Qual ging mir eine Frage nicht aus dem Kopf. Mir schien es bei meinem Skript, als wenn die Initialisierung einer Variable am Anfang des Skriptes nicht möglich sei:


<script type="text/javascript">
//<![CDATA[
var hex=0; //start color value
var loading = document.getElementById("transmissionstatus");

Auf die Variable hex konnte ich im weiteren Verlauf problemlos in den Funktionen zugreifen. Bei loading gab es immer eine Fehlermeldung. Die Lösung ist, wie so oft, relativ einfach. Das Skript befindet sich vor dem HTML-Teil und damit auch vor dem Objekt mit der ID. Daher existiert das Objekt zum Zeitpunkt der Variablendeklaration noch nicht. Wieder falsch gedacht. Warum es bei hex geht, kann ich nicht erklären. In JavaScript ist es so, dass das Schlüsselwort var grundsätzlich eine Variable zu einer lokalen Variable macht. Ohne var ist es eine globale Variable.

Also einfach nur das Schlüsselwort weglassen, und schon geht es. Mein Bauchgefühl (ich weiß, darauf sollte ich mich zumindest beim programmieren nicht verlassen) sagt mir aber, dass die folgen, auch funktionierende Variante noch etwas eleganter wäre:


window.onload  = function () {
hex=0; //start color value
loading = document.getElementById("transmissionstatus");
}

Ich für meinen Teil kann jetzt auf jeden Fall beruhigt schlafen. Und morgen ist ja Samstag.

Kommentar verfassen