Gerd Gruber: setAttributeNode() im IE

Beitrag lesen

Hallo,

Der Netscape 6 lässt sich dadurch nicht beirren. Dieser erkennt, dass der Attributwert Blödsinn ist, belässt den Tag h1 beim Attribut "align" im Standardwert (left) und lässt den nachfolgenden Code weiter ablaufen.
Wie kann ich dies auch beim IE erreichen?

document.getElementsByTagName("h1")[0].setAttribute("align","xenter");

liefert mit "xcenter" statt center keinen Fehler und aendert an nichts an der Ausgabe.

MfG, Thomas

Vielen Dank für die schnelle Antwort. Leider funktioniert dies nicht für alle Attribute. Z. B:
<body>
<table border="3" bordercolor="#ff0000" width="100%">
<tr><td ID="test1"> test</td><td> test2</td></tr>
<tr><td ID="test2"> test3</td></tr>
</table>
<script type="text/javascript">
<!--
 var Ausrichtung = document.createAttribute("align");
 Ausrichtung.nodeValue = "center";
 //document.getElementById("test2").setAttributeNode(Ausrichtung);
 document.getElementById("test2").setAttribute("align","center");
 document.getElementById("test2").setAttribute("colspan","2");
 alert('Hallo');
//-->
</script>

</body></html>
Für das Attribut align funktioniet dies hier. Für das Attribut colspan leider nicht.
IE will bei diesem (und auch anderen) Attribut, dass es zuerst mal erzeugt wird. Also:
   var Ausrichtung = document.createAttribute("colspan");
   Ausrichtung.nodeValue = "2";
   document.getElementById("test2").setAttributeNode(Ausrichtung);
und das gewünschte klappt.
Leider kann man das Attribut nicht als leeres Attribut erstellen.
nodeValue muss einen korrekten Wert haben. Und schon sind wir leider wieder beim Ausgangspunkt des Problemes.

Aber vielen Dank für deine Hilfe.
Vielleicht fehlt dir noch ein guter Gedanke dazu ein.

freundliche Grüße

Gerd