Der Internet Explorer und das DOM Objekt

Im Grunde genommen hätte dieser Beitrag auch Die unendliche Geschichte heißen können. Heute war es nämlich mal wieder soweit. Einer dieser Momente, in denen ich als Entwickler hier sitze und vor Verzweifelung in die Tischkante beißen könnte.

Das Problem bestand darin, dass ich in einem HTML Dokument mehrere Listen hatte, die ich mittels Javascript auf ein bestimmtes Attribut hin überprüfte. Ein Glück hat das W3-Konsortium ja das Document Object Model erfunden. So konnte ich alle relevanten Knoten aus dem HTML Text filtern und mit einer Schleife durchlaufen und die Attribute behandeln. Zumindest lief es in der aktuellen Firefox Version so.

Der Internet Explorer stellt auch in der momentan aktuellen 7er Reihe und in allen älteren Versionen ein großes Problem dar. Folgender Code funktioniert hier nämlich nicht.

<script type="text/javascript">
var numberOfNodes = document.getElementById('meineListe').childNodes.length;
for (var i = numberOfNodes - 1; i &gt;= 0; i--) {
  var thisNode = document.getElementById('meineListe').childNodes[i];
  if (thisNode.nodeName == 'DL') {
    var attrLength = thisNode.attributes.length;
    for (var j = attrLength -1; j &gt;= 0; j--) {
      if (thisNode.attributes[j].nodeValue == 'gesuchtesAttribut') {
        document.getElementById('meineListe').removeChild(thisNode);        
      }
    }
  }
}
</script>

Anstatt hier eine Attributanzahl von 2 oder 3 zu erkennen, landet man mit dem Internet Explorer bei Werten wie 94 oder ähnliches, obwohl real nur maximal 3 Attribute in einem Kindknoten vorhanden sind.

Was lernen wir daraus? Attribute immer direkt ansprechen und nicht auf das Array aller verfügbaren Attribute eines Knotens zugreifen. Da haben wir also wieder etwas gelernt … auch wenn es mal wieder unnötig Zeit gekostet hat. Zum Internet Explorer möchte ich heute kein weiteres Wort verlieren.

About Author: Marcel
Ich bin Senior PHP Developer bei MM Newmedia. Seit 2005 bin ich begeisterter Webentwickler und arbeite als Freelancer für namenhafte Firmen und entwickle jede Menge abgefahrenes Zeug und berichte darüber in meinem Blog.

Kommentar verfassen

Werbung