Hi,
ich möchte mit JavaScript den Code in Div-Boxen verändern.
Ich lese diesen mit innerHTML aus, füge bspw. an eine bestimmte Stelle etwas ein und schreibe den neuen Code mit innerHTML wieder zurück.
Leider gibt mit der Internet Explorer einen völlig kaputten Code zurück, wenn ich innerHTML abfrage. Da werden Elementnamen plötzlich groß geschrieben, manche Anführungszeichen fehlen, usw.
ja, das ist mindestens seit IE4 bekannt. Wie du schon schreibst: Die meisten Elementnamen in Großbuchstaben, Attribute teils sin Großbuchstaben, teils in einem aberwitzigen GrOßklEinmIx, Anführungszeichen werden willkürlich weggelassen (aber nicht alle), die Reihenfolge von Attributen durcheinandergewürfelt, Zeilenumbrüche innerhalb von Tags eingefügt.
Das ist genau dieselbe Verstümmelung, wie wenn man eine Webseite mit dem IE lokal speichert.
Auf den Seiten, die ich bisher dazu gefunden habe, wurde gesagt, man soll den ausgelesenen Code durch eine (selbst geschriebene) Funktion laufen lassen, die ihn wieder korrigiert, die also Anführungszeichen wieder einfügt usw.
Das kann doch nicht ernsthaft die einzige Lösung sein?
Es kann vor allem keine Lösung sein - das würde ja heißen: Baue einen HTML-Parser in Javascript.
Darf ich dieses Verhalten als Fehler bezeichnen?
IMHO ja.
Wie kann ich dem IE beibringen, dass er mir das zurückgeben soll, was drin steht?
Mir ist bei Verwendung von innerHTML keine Möglichkeit bekannt. Umgänglicher wird der IE nur, wenn man die einzelnen Nodes über DOM-Methoden manipuliert, und innerHTML meidet.
So long,
Martin
Der Afrika-Forscher wird gefragt: "Stimmt es, dass man nicht von Löwen angefallen wird, wenn man eine Fackel trägt?" - "Kommt drauf an. Man muss die Fackel sehr schnell tragen."
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(