DOM - oder Der Olle' Mist bleibt ?!
Boris Hoeller
Hi Leute,
das gute alte Kompatibilitätsthema steht wieder mal an.
Jetzt mal für DOM.
Da freute man sich so sehr über dieses gar so nette
document.all im IE4, das dem DHTML so einen netten Innovationsschub gab und endlich konnte man das machen, was man schon immer wollte .....
Doch das
document.all('ElementID') oder document.all.ElementID
(Wobei 'ElementID' aus z.B <div id="ElementID"></div> stammt)
scheint wiederum nicht den Weg
in das ECMA Script Language Binding gefunden zu haben.
Beim Testen der Gecko Seiten von Netscape habe ich mit
dem IE5b2 ne' Menge Frust erlebt, offenbar kommt der -
trotz angeblichen W3C DOM Support - mit dem vom Gecko verwendeten und offenbar mit dem ECMA Script Language Binding kompatiblen
document.getElementByID('ElementID')
nicht klar.
Also kein Ende der Verzweiflungsschrei-tiraden auch bei der 5ten Generation?
Hat jemand mehr Erfahrung, Info oder mehr getestet als ich wie hier dargelegt?
Cu all
Bo
Hallo Boris,
Da freute man sich so sehr über dieses gar so nette
document.all im IE4, das dem DHTML so einen netten Innovationsschub gab und endlich konnte man das machen, was man schon immer wollte .....
Doch das
scheint wiederum nicht den Weg
in das ECMA Script Language Binding gefunden zu haben.
Genau das regt mich auch auf, und ich bin stinkesauer, warum MS immer so schlau ist, gute Ideen von anderen zu uebernehmen, waehrend alle anderen immer so doof sind zu glauben, sie muessten das Rad neu erfinden. Diese Schelte geht in diesem Fall vor allem an Netscape und Gecko. Sollen wir also wieder in jedem Script diesen Schwachsinn notieren:
if(document.all) ...
else if(document.geckosonstwas) ...
Ich muss ehrlich gestehen, von dieser Art Programmierung profitiert ausser Tips-und-Tricks-Redaktionen keiner. Ich habe jedenfalls gruendlich die Schnauze voll davon.
Hergott ist das so schwer, auch mal einzusehen, dass MS eine gute Idee hatte. Warum koennen andere nicht einfach mal ueber ihren superstolzen Schatten springen und das gleiche Erfolgsrezept anwenden wie MS. So wird das doch nie was mit der Konkurrenz...
Amen <g>
Stefan Muenz
hi Stefan, hi Boris,
Sollen wir also wieder in jedem Script diesen Schwachsinn notieren:
if(document.all) ...
else if(document.geckosonstwas) ...
nein, aber wenn ich die DOM richtig verstanden habe, dann gibt es im offiziellen Standard der DOM gar kein "document.all". - Wenn ich da was überlesen habe, dann sagt mir mal Bescheid, daß ich mit diesem Fehler nicht sterbe. - Ich denke man kann von NS nun nicht verlangen, ein MS Sprachkonstrukt ("document.all") zu implementieren, wenn es ein Äquivalent in der offiziellen Recommendation gibt.
Die DOM ist eben "NUR" 98% MS - Erfindung.
Tschuess
Olaf
hi!
Da freute man sich so sehr über dieses gar so nette
document.all im IE4, das dem DHTML so einen netten Innovationsschub gab und endlich
konnte man das machen, was man schon immer wollte .....
Doch das
scheint wiederum nicht den Weg
in das ECMA Script Language Binding gefunden zu haben.
Genau das regt mich auch auf, und ich bin stinkesauer, warum MS immer so schlau ist,
gute Ideen von anderen zu uebernehmen, waehrend alle anderen immer so doof sind zu
glauben, sie muessten das Rad neu erfinden. Diese Schelte geht in diesem Fall vor allem an
Netscape und Gecko. Sollen wir also wieder in jedem Script diesen Schwachsinn notieren:
Hergott ist das so schwer, auch mal einzusehen, dass MS eine gute Idee hatte. Warum
koennen andere nicht einfach mal ueber ihren superstolzen Schatten springen und das
gleiche Erfolgsrezept anwenden wie MS. So wird das doch nie was mit der Konkurrenz...
Das liegt ganz einfach daran, dass es zwar die Methode getElementByID gibt, aber nicht Eigenschaft von document, auf die Microsoft zugreifen lässt, zumindest nach W3C. Warum hält sich Mircosoft nicht daran. Netscape macht es also genau richtig.
http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html#ID-2017288232
bye, Frank!
Hallo Frank,
Das liegt ganz einfach daran, dass es zwar die Methode getElementByID gibt, aber nicht Eigenschaft von document, auf die Microsoft zugreifen lässt, zumindest nach W3C. Warum hält sich Mircosoft nicht daran. Netscape macht es also genau richtig.
http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html#ID-2017288232
Richtig, ich erinnere mich - so haben sie es in der Spec genannt. Was ich aber auch wieder nicht verstehe. Warum muessen sie es eigentlich wieder neu machen? Warum koennen sie es nicht so lassen wie es schon implementiert ist? Warum muss jeder Koch seinen Senf zugeben und mithelfen den Brei zu verderben?
Das soll kein Inschutznehmen von Microsoft sein. Es ist einfach nur nervig, im Jahr 4 der clientseitigen Web-Scriptsprachen immer noch keinen ordentlichen Befehlssatz zu haben bzw. andauernd alles umschreiben oder mit tausend if-Abfragen spicken zu muessen. Das macht einfach keinen Spass.
viele Gruesse
Stefan Muenz
Hallo Frank,
Das liegt ganz einfach daran, dass es zwar die Methode getElementByID gibt, aber nicht Eigenschaft von document, auf die Microsoft zugreifen lässt, zumindest nach W3C. Warum hält sich Mircosoft nicht daran. Netscape macht es also genau richtig.
http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html#ID-2017288232
War ja im Ausgangsthread auch so dargestellt
[....] andauernd alles umschreiben oder mit tausend if-Abfragen spicken zu muessen. Das macht einfach keinen Spass.
viele Gruesse
Stefan Muenz
So sehe ich das auch, da kommt man sich vor wie auf dem HTML Spielplatz mit kleinen DOM Sandburgen.
Seit Januar 1998 tippe ich munter document.all
( hey: 3 Buchstaben!!) und jetzt schon wieder dieser Kompatibilitätsmurks. Man wird abwarten müssen, ob MS nicht einfach die Methode 'all' als alias für die ecma-script Variante 'getElementByID' (vv) in dem IE5 release stehen läßt.
Man könnte ja mal mailen und fragen ....
... oder nachlesen:
http://www.microsoft.com/workshop/xml/xmldom/reference/DOMElement_object.asp
Da heißt die Methode in etwa: getElementsByTagName
Auch wieder anders - Na super!!
CU all
Bo