Sven Rautenberg: IE-DOM vs. Moz-DOM: Property "specified"

Beitrag lesen

Moin!

Hier mal ein kleiner Test, der alle fuer den BODY im Quellcode definierten Attribute ausgibt.

Der Test ist gut. Und so harmlos auch im IE, wenn man die "richtigen" HTML-Elemente verwendet.

Aber wenn man die "falschen" nimmt, versagt der IE offenbar.

Ich habe deinen Testcase mal etwas aufgebohrt:

...
<body id="bd" bgcolor="#FFFFFF" text="#000000">
<input type="submit" name="hallo" value="+"><br>
<input type="text" name="werda" size="10" value="defaultbelegung"><br>
<input type="radio" name="sender" value="test"><br>
<script language="JavaScript" type="text/javascript">
<!--

var node,attr,l;
node=document.getElementsByTagName("input");
for (j=0; j<node.length; j++)
{
  attr=node[j].attributes;
  l=attr.length;
  for(i=0;i<l;i++) {
    if(attr[i].specified) {
      document.write(attr[i].name+" ::: "+attr[i].value+"<br>");
    }
    else {
//      document.write(attr[i].name+" - "+attr[i].value+"<br>");
    }
  }
  document.write("<hr>");
}
//-->
</script>
</body>
...

Resultat:
Mozilla, Opera zeigen alle in den Inputs gesetzten Attribute an, IE nicht!

Das type-Attribut wird nicht angezeigt beim Textfeld, und das value-Attribut wird generell nicht angezeigt.

Nur die Schreibweise differiert etwas (z. B. bgColor, bgcolor, BGCOLOR -- also ggf. noch toLowerCase() anwenden.

Die Schreibweise wäre das kleinere Problem.

Ich denke, ich werde diesen Effekt mit einer Sonderbehandlung umgehen müssen: if nodeName="input" then ... *seufz*

- Sven Rautenberg