Msie: 'unbekanntes Mitglied'

Hallöchen

wer hätts gedacht, der msie meckert mal wieder (ff, opera, safari und chrome sind zufrieden)

es geht um ein widget-script von mir
hier der entsprechende Auszug

var Wback = document.createElement("div");
     Wback.id = this.id;

Wback.setAttributeNode(Wback_style);

msie meldet mir jetzt hier in Zeile 3 “unbekanntes Mitglied”, als würde er nicht erkennen, dass ich oben Wback = doc… gesetz habe

ach, und ja, Wback_style existiert auch

vielleicht weiß einer ja was Mircosoft da von mir will

Grüße

Und was ist Wback_style , wie hast du es erzeugt?

setAttribute/setAttributeNode sind im IE oftmals problematisch, es ist so gut wie immer besser, Attributwerte direkt zuzuweisen.

erzeugt wirds so

var Wbar_style = document.createAttribute(“style”);

[quote=“Morpheus”]erzeugt wirds so

var Wbar_style = document.createAttribute(“style”);[/quote]
Das ist ziemlich unsinnig bzw. äussert überflüssig.

Jedes Element hat per se ein style-Objekt unter sich, über das du direkt auf die Style-Eigenschaften des Elementes zugreifen kannst.

Vielleicht ist “var Wback = document.createElement(“div”);” in der falschen Zeile gesetzt?

hier en etwas größerer Auszug:

[code] var Wback = document.createElement(“div”);
Wback.id = this.id;

		var Wback_style = document.createAttribute("style");
		    Wback_style.nodeValue = this.style;
		
		var Wbar = document.createElement("div");
		    Wbar.id = this.id + "_bar";
		
		var Wbar_style = document.createAttribute("style");
		    Wbar_style.nodeValue = "background-color: #F06000; cursor: move;";
		
		var Wbar_onmousedown = document.createAttribute("onmousedown");
		    Wbar_onmousedown.nodeValue = this.id+".drag();";
		    
		var Wbar_onmouseup = document.createAttribute("onmouseup");
		    Wbar_onmouseup.nodeValue = this.id+".drop();";
		    
		    
		var Wcont = document.createElement("div");
		    Wcont.id = this.id + "_cont";
		
		var Wcont_style = document.createAttribute("style");
		    Wcont_style.nodeValue = "background-color: white;";
		
		Wback.setAttributeNode(Wback_style);
		Wbar.setAttributeNode(Wbar_onmousedown);
		Wbar.setAttributeNode(Wbar_onmouseup);
		Wbar.setAttributeNode(Wbar_style);
		Wcont.setAttributeNode(Wcont_style);[/code]

kann vielleicht msie nur die attribute setzen nachdem ich den ganzen node wo angehängt habe? also erst nach document.body.appendChild(Wback) zB

var Wback_style = document.createAttribute("style"); Wback_style.nodeValue = this.style;
Unnötig, weg damit.

var Wbar_style = document.createAttribute("style"); Wbar_style.nodeValue = "background-color: #F06000; cursor: move;";
Das hier gleich über elementReferenz.syle.eigenschaft = “wert” machen.
Besondere Schreibweise bei Eigenschaftsnamen mit Bindestrich drin beachten, siehe SELFHTML.

var Wbar_onmousedown = document.createAttribute("onmousedown"); Wbar_onmousedown.nodeValue = this.id+".drag();";
Auch unnötig kompliziert. elementReferenz.onmousedown = funktionsReferenz tut’s auch.

meinst also aus

var Wback_style = document.createAttribute("style"); Wback_style.nodeValue = this.style;

machen?

joar, aber hilft jetzt bei meinem problem wohl nicht viel

//edit:
Da sagt’s mir übrigens dann Fehler: setting a property that has only a getter

Natürlich, schliesslich versuchst du damit das ganze style-Objekt zu überschreiben.

Ich schrieb doch, den einzelnen style-Eigenschaften darüber Werte zuweisen.
Nachzulesen in SELFHTML, Beschreibung des style-Objektes.

yo war dumm

interessanter weise funktioniert es mit onmousedown und onmouseup nicht
wenn ich Wbar.onmouseup = bla mache kriegt er das irgendwie net hin

aber msie spuckt jetzt keine fehler mehr aus
nu hab ich style direkt drin und halt nur die events auf umweg