DOM in Netscape und DOCTYPE
Peter Linzenkirchner
- javascript
Hallo,
weiss jemand, warum in Netscape 7 der Befehl getElementByID('xxx').style.top = xxx nicht mehr funktioniert, wenn ich den DOCTYPE von Transitional auf strict umsetze oder wenn ich im DOCTYPE den Link auf www.w3.org einsetze? (Ich brauche das für CSS). getElementByID('xxx').visibility = 'hidden' funktioniert dagegen. Ist das schlicht ein Fehler, oder hat sich die Syntax wieder mal geändert?
??
Danke
Peter
Hallo,
weiss jemand, warum in Netscape 7 der Befehl getElementByID('xxx').style.top = xxx nicht mehr funktioniert, wenn ich den DOCTYPE von Transitional auf strict umsetze oder wenn ich im DOCTYPE den Link auf www.w3.org einsetze?
getElementByID('xxx') dürfte eigentlich gar nicht funktionieren, weil es eine solche Methode nicht gibt. Es gibt eine Methode getElementById('xxx').
Ob [Node].style.top = xxx funktioniert, hängt vom Wert von xxx ab und davon, wie [Node] positioniert ist.
Angenommen, [Node] wäre absolut bzw. relativ positioniert, also _nicht_ im normalen Elementfluss dann gilt:
[Node].style.top = 200; sollte _nicht_ funktionieren, weil die Einheit fehlt.
[Node].style.top = "200px"; sollte hingegen funktionieren.
getElementByID('xxx').visibility = 'hidden' funktioniert dagegen.
Das glaube ich nicht.
viele Grüße
Axel
Hallo Axel,
Ob [Node].style.top = xxx funktioniert, hängt vom Wert von xxx ab und davon, wie [Node] positioniert ist.
Angenommen, [Node] wäre absolut bzw. relativ positioniert, also _nicht_ im normalen Elementfluss dann gilt:
[Node].style.top = 200; sollte _nicht_ funktionieren, weil die Einheit fehlt.
Du hast Recht!! Das ist auch die Erklärung: mit DOCTYPE Transitional gleicht er den Fehler aus (= Quirk-Mode), mit Strict nicht mehr. Wenn ich die Einheit ergänze, funktioniert es, auch im Strict-Mode.
Ok, ich habe schon lange nichts mehr mit JavaScript gemacht; es braucht wohl noch, bis ich wieder in der Denke drin bin. Jedenfalls Danke, das war der entscheidende Tip.
[Node].style.top = "200px"; sollte hingegen funktionieren.
getElementByID('xxx').visibility = 'hidden' funktioniert dagegen.
Hä hä, ich auch nicht. Ich habe mich nämlich vertippt: getElementById('xxx').style.visibility = 'hidden' heisst es natürlich (im Dokument wars richtig). Und das ging, weil hier keine Einheit nötig ist.
Gruß
Peter