IE8, createElement und CSS/class
Siri
- javascript
0 Gunnar Bittersmann0 dave0 Worf
Hallo,
ich erzeuge ein neues Element:
var newElement = document.createElement("div");
Beim Einhängen des Elements werden die CSS-Stylesheet Eigenschaften nicht "aktiviert".
1. Versuch:
newElement.setAttribute("class", "testclass");
schlug fehl. Gegoogelt: hier und hier führt zum
2. Versuch:
newElement.className= "testclass";
Das neue Element hat keine CSS-Eigenschaften.
3. Versuch:
document.getElementsByTagName("body")[0].className = "testclass";
ist genauso gescheitert wie
4. Versuch:
targetElement = document.getElementById("testtarget");
targetElement.appendChild(newElement);
und
5. Versuch:
targetElement = document.getElementById("testtarget");
targetElement.innerHTML = newElement.innerHTML;
Hat noch jemand eine Idee (außer IE8 zu ignorieren)?
Viele Grüße
Siri
@@Siri:
nuqneH
Beim Einhängen des Elements werden die CSS-Stylesheet Eigenschaften nicht "aktiviert".
Kann ich nicht nachvollziehen.
Qapla'
Hi,
funktioniert bei mir:
<!DOCTYPE html>
<title></title>
<style>
[code lang=css].foo {border: 1em solid orange;}
</style>
<body>
<script>
~~~javascript
var foo = document.createElement('div');
foo.className = 'foo';
document.body.appendChild(foo);
</script>
</body>[/code]
~dave
Hallo,
eventuell funktioniert es mit der "Fragment"-Methode für den IE, wie es im Beitrag IE < 8 und setAttribute/getAttribute unter Punkt "setAttribute('type')" beschrieben ist:
var newElement;
try // IE7
{
newElement = document.createElement('<div class="testclass">');
}
catch(e){}
if (!newElement) {
// Andere Browser
newElement = document.createElement("div");
newElement.className = "testclass";
}
Gruss,
Worf
@@Worf:
nuqneH
eventuell funktioniert es mit der "Fragment"-Methode für den IE
Dass sowohl das Erzeugen eines Elements mit normaler DOM-Methode als auch das Setzen eines @class-Attributs als auch die Anwendung der Styles dafür auch im IE 8 funktioniert, wurde doch schon geklärt.
Der Fehler muss irgendwo anders stecken.
Qapla'