IE: innerHTML Ausgabe retourniert nicht immer Anführungszeichen
maindrop
- javascript
0 Snafu0 Der Martin
Hallo!
Ich würde gerne die VML-Struktur eines HTML-Dokuments per JavaScript in einer XML-konformen Struktur an den Server senden.
Das einzige Problem dabei ist, dass mir innerHTML keine Anführungszeichen bei den Attributen id und class ausgibt.
z.B.:
var test = document.create('div');
test.id = 'testid';
alert(test.id); // -> liefert "<DIV id=testid></DIV>"
Ich habe mittlerweile schon einiges an der DOCTYPE Definition verändert, aber leider reagiert innerHTML darauf offenbar nicht. Derzeit verwendige ich den XHTML 1.0 Strict Doctype.
Mach ich irgendetwas falsch oder ist das ein bekanntes Problem? Eine mögliche Lösung wäre zwar, den String per RegEx zu bearbeiten, was ich mir aber nicht unbedingt antun möchte, falls es auch anders geht.
Habt ihr einen Tipp für mich?
Besten Dank!
LG,
Michael
Hallo!
var test = document.create('div');
test.id = 'testid';
alert(test.id); // -> liefert "<DIV id=testid></DIV>"
Also wenn ich jetzt nicht etwas verpasst habe dann sollte das alert-Fenster überhaupt nur "testid" (ohne Anführungszeichen) ausspucken.
Hi,
var test = document.create('div');
test.id = 'testid';
alert(test.id); // -> liefert "<DIV id=testid></DIV>"
du meintest sicher alert(test), denn sonst müsste ich denselben Einwand wie Snafu bringen.
Mach ich irgendetwas falsch oder ist das ein bekanntes Problem?
Ja. ;-)
Sagen wir's mal so: Es ist eine allgemein bekannte Unart des IE, bei allen Nachfragen nach dem Quellcode immer den "interpretierten" internen Quellcode zu zeigen. Das sieht man auch, wenn man eine HTML-Seite aus dem IE speichert. Da werden Tags und Attribute wahllos mal groß, mal klein geschrieben, Anführungszeichen werden mal gesetzt, mal aber auch nicht, und jegliche Formatierung des Quellcodes ist grauenhaft entstellt.
So long,
Martin
Hi,
var test = document.create('div');
test.id = 'testid';
alert(test.id); // -> liefert "<DIV id=testid></DIV>"du meintest sicher alert(test), denn sonst müsste ich denselben Einwand wie Snafu bringen.
Mach ich irgendetwas falsch oder ist das ein bekanntes Problem?
Ja. ;-)
Ihr habt natürlich vollkommen recht! Das kommt davon, wenn man an einem PC entwickelt und nur am anderen Internet-Zugang hat...
Da hab ich noch schnell ein Beispiel eingefügt, damit's verständlicher wird und genau das gegenteil erreicht :D
So hab ich's gemeint:
var div = document.createElement('div');
div.id = 'test';
alert(div.outerHTML); // -> liefert "<DIV id=test></DIV>"
Sagen wir's mal so: Es ist eine allgemein bekannte Unart des IE, bei allen Nachfragen nach dem Quellcode immer den "interpretierten" internen Quellcode zu zeigen. Das sieht man auch, wenn man eine HTML-Seite aus dem IE speichert. Da werden Tags und Attribute wahllos mal groß, mal klein geschrieben, Anführungszeichen werden mal gesetzt, mal aber auch nicht, und jegliche Formatierung des Quellcodes ist grauenhaft entstellt.
Heisst das, dass ich wohl den String mit dem HTML-Code bearbeiten und die Anführungszeichen selbst einfügen muss oder gibt es da noch eine bessere/schnellere Variante?
So long,
Martin
hi,
Heisst das, dass ich wohl den String mit dem HTML-Code bearbeiten und die Anführungszeichen selbst einfügen muss oder gibt es da noch eine bessere/schnellere Variante?
Bevor ich an dem, was der IE als innerHTML liefert, herumoperiere, erstelle ich's mir doch lieber selbst.
Knoten rekursiv durchlaufen, Tags und Attribute erzeugen, aneinanderhängen ...
Musst du vermutlich nicht mal selber entwickeln - schau doch mal, ob bspw. http://innerdom.sourceforge.net/de_index.html dir weiterhilft.
gruß,
wahsaga
hi,
Heisst das, dass ich wohl den String mit dem HTML-Code bearbeiten und die Anführungszeichen selbst einfügen muss oder gibt es da noch eine bessere/schnellere Variante?
Bevor ich an dem, was der IE als innerHTML liefert, herumoperiere, erstelle ich's mir doch lieber selbst.
Knoten rekursiv durchlaufen, Tags und Attribute erzeugen, aneinanderhängen ...Musst du vermutlich nicht mal selber entwickeln - schau doch mal, ob bspw. http://innerdom.sourceforge.net/de_index.html dir weiterhilft.
gruß,
wahsaga
Danke, innerDOM hört sich gut an! Werd mir das gleich genauer anschaun.
LG
Michael