innerHTML zeigt style-Tags nicht

DataFox

Erfahrenes Mitglied
Hi Leute

ich habe ein Problem mit innerHTML!

Und zwar will ich den gesamten Inhalt von document.body.innerHTML abfragen um den Content in ein anderes Fenster zu clonen und ggf. zu cachen (eine RIA). Interessanterweise werden alle

Code:
<style type="text/css">...</tyle>

Tags aus dem Value entfernt. JavaScript-Tags sind aber drin. Der MSIE 6.0 macht's genau richtig, während der eigentlich x-mal bessere FireFox es gar nicht tut. Dort verschwinden diese Style-Blöcke einfach aus dem innerHTML. Wieso Und was kann man dagegen tun? Wo sie stehen wäre im Prinzip egal, aber ich muss sie im Value haben!

Gruß
Laura
 
Wenn ich mich recht entsinne, dürfen innerhalb des Body-Elements gar keine Style-Elemente vorkommen ... evtl. irre ich mich aber auch.
 
Doch, dürfen! Viele tun es... idealerweise lagert man es aus, so wird es nur einmal geladen und kann bei dynamischen Seiten gecached werden. Oft wird's aber einfach nicht getan, manchmal aber auch weil die Stylesheets ebenfalls sehr dynamisch sind.

Gruß
Laura
 
Genau, und ich meine das sie eben nur im Head-Element vorkommen dürfen. Und das wiederum darf nicht im Body-Element sein.
 
Stimmt! Laut Standard gehörts nicht in den Body, sondern in den Head. Habe mir nun explizit mal alles was im HTML-Tag steht zurück geben lassen, und siehe da: Der Firefox packt tatsächlich den Style-Block in den Head (korrigiert den Fehler also intern).

Der IE lässt ihn einfach im Body stehen. Kommt aber dennoch damit klar :)

Gruß
Laura
 
Ansonsten kannst du auch einfach mal STRG+A drücken, rechtsklick und "Auswahl-Quelltext" anzeigen klicken, dann siehst du, was Firefox aus deinem Code gemacht hat ;)
 
Genau, und ich meine das sie eben nur im Head-Element vorkommen dürfen. Und das wiederum darf nicht im Body-Element sein.

Genauso sieht es aus:
HTML4-Spefikation hat gesagt.:
The STYLE element allows authors to put style sheet rules in the head of the document. HTML permits any number of STYLE elements in the HEAD section of a document.

Lass dir mal das innerHTML des <head> ausgeben...du wirst bemerken, dass im FF dort das <style>-Element existiert, welches du woanders notiert hattest.
 

Neue Beiträge

Zurück