DOM Detection
Marcus
- javascript
0 Herbalizer0 Marcus0 Cyx230 Herbalizer
0 Henryk Plötz
Hallo liebe Runde!
Ich habe festgestellt, dass bestimmte Browser (z.B. IE5.x auf MAC) die eigentlich DOM unterstützen, ein Interface das DOM recht umfangreich einsetzt nicht korrekt darstellen.
Derzeit habe ich den Bereich der "node"-Methoden im Verdacht.
Ganz pragmatisch gefragt:
Das Interface wird niemals auf einem Mac Browser bzw. allen anderen die Probleme machen laufen müssen. Gibt es eine definierbare Implementierungsgrenze hinsichtlich unterschiedlicher DOM Methoden, lohnt damit also eine Differenzierung, oder filtert man die "Übeltäter" am besten mit konventioneller Versionstring Detection raus?
Meine Frage ist wirklich sehr qualitativ gemeint, falls jemand damit bereits seine Erfahrungen gesammelt hat würde ich mich über einen Tipp freuen!
Vielen Dank & Viele Grüße!
_marcus
Hi!
oder filtert man die "Übeltäter" am besten mit konventioneller Versionstring Detection raus?
Nein. Du schaust was er an Methoden kann, wenn du sie einsetzt. Da ich nicht weis, was du machen willst, nur ein kurzes Beispiel mit der DOM2-Methode createElementNS, die zur Zeit nur Gecko beherscht, und benötigt wird, wenn man zB. ein HTML-Element in einem als application/xml, text/xml oder application/xhtml+xml ausgelieferten Dokument erstellen will:
if(document.createElementNS) {
var bild = document.createElementNS("http://www.w3.org/1999/xhtml","img");
} else if (document.createElement) {
var bild = document.createElement("img");
} else {
alert('Kann kein DOM :(');
}
...
[mache was mit dem neuen HTMLImage-Objekt]
...
Gruß Herbalizer
Siehst Du, genau das meine ich:
IE5.x auf dem Mac kennt natürlich das document object, aber auch eine Methode wie "getElementsByTagName" - also eine Methode die eigentlich aus der XML-Variante von DOM kommt.
Andere Methoden wie "appendChild" werden dafür nicht unterstützt.
Bevor ich nun alle Methoden die ich einsetze einzeln detecte, hat mich interessiert ob es "konsequente" Methoden oder Objekte innerhalb einzelner Browser gibt..."Kann er das, dann kann er das auch"...so in der Art.
Aber vielen Dank!
_marcus
Hallo,
Siehst Du, genau das meine ich:
IE5.x auf dem Mac kennt natürlich das document object, aber auch eine Methode wie "getElementsByTagName" - also eine Methode die eigentlich aus der XML-Variante von DOM kommt.
mit
if(document.implementation&&document.implementation.createDocument)
klappt es vmtl. den IE5/Mac auszuschliessen.
Ggf. brauchst du noch etwas für Opera 7, Konqueror, Safari..
Grüsse
Cyx23
Hi!
Guckst du hier http://www.xs4all.nl/~ppk/js/index.html?intro.html in die W3C DOM Compatibility Tables und suchst dir was passendes heraus.
Gruß Herbalizer
Moin,
Gibt es eine definierbare Implementierungsgrenze hinsichtlich unterschiedlicher DOM Methoden, lohnt damit also eine Differenzierung, oder filtert man die "Übeltäter" am besten mit konventioneller Versionstring Detection raus?
Dafür unterstützt DOM bereits von Anfang die Methode hasFeature mit der man eine Implementierung fragen kann, ob sie ein bestimmtes Modul in einer bestimmten Version implementiert und dann seinen Code danach richten kann: http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-102161490.