Der Martin: Unverständlicher Javascript-Fehler wegen null

Beitrag lesen

Hallo,

TypeError: document.getElementById(...) is null (Zeile 91)

Die Zeile 91 ist die, in die das Programm eigentlich gar nicht hineinlaufen kann:

oh doch, weil du etwas anderes geschrieben als gemeint hast.

90 if ( typeof document.getElementById( "XMLHttpRequest_gesendet" ) !== "null" ) {
91   document.getElementById( "XMLHttpRequest_gesendet" ).innerHTML = url;
92 }

Du prüfst da nicht auf den null-Wert, sondern auf exakte und typsichere Übereinstimmung mit dem String "null".

EDIT: Ich würde in so einem Fall gar nicht mit typeof oder dem magischen Wert null rumhantieren, sondern sowas machen:

90 if (el=document.getElementById("XMLHttpRequest_gesendet") {
91   el.innerHTML = url;
92 }

Die if-Abfrage betrachtet sowieso alles als false, was null, 0, "0" oder "" ist. Und mit der Zuweisung an eine Hilfsvariable el erspare ich mir, das DOM zweimal nach genau demselben Element zu durchsuchen.

Es stellt also fest, dass ein Objekt ungleich null ist, um dann zu protestieren, dass es doch null ist. Welchen Sinn macht das?

Keinen.

Ciao,
 Martin

--
Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.