iframe Frage
Michael
- javascript
Hallo liebe Programmierer,
ich versuche gerade zu verstehen, wie im CLEDITOR ein Textfeld auf ein Iframe umgeleitet wird.
Das Iframe wird mit der src=javascript:true; konstruiert statt mit einer URL.
Was bedeutet das? Ich verstehe diese Vorgehensweise nicht
Kann mir jemand helfen?
LG
Michael
Lieber Michael,
alle JavaScript-basierten WYSIWYG-Editoren arbeiten nach demselben Prinzip: In einem iFrame wird ein Dokument in den editierbaren Modus geschaltet (Stichwörter "contentEditable" und "designMode"). Dieser Modus ist stark davon abhängig, was der Browser daraus macht. In aller Regel versuchen diese JavaScript-Editoren das vom Browser auf die Nutzereingaben hin erzeugte HTML zu bereinigen, und ein über die jeweiligen Eigenheiten der Browser hinweg "gleiches" Ergebnis zu ermöglichen.
Im Wesentlichen wird dazu ein Textfeld (<textarea>) eines Formulars visuell durch eben einen solchen iFrame ersetzt (die Textarea bleibt zwar vorhanden, wird aber ausgeblendet), in den dann der HTML-Code aus dem Textfeld übertragen wird. Beim Versenden des Formulars wird dann aus dem Editor zuvor der Quellcode wieder in die Textarea geschrieben.
Das Iframe wird mit der src=javascript:true; konstruiert statt mit einer URL.
Was bedeutet das?
Die Quelle ist zunächst unerheblich, da der Inhalt des Dokuments ja ohnehin per JavaScript mit dem Inhalt der Textarea gefüllt werden soll. Anstatt den Browser einen neuen HTTP-Request an den Server senden zu lassen, um ein Dokument in den iFrame zu laden, benutzt der CLEditor eben diese "URL".
Oft will man in der Textarea nur den Inhalt zwischen <body> und </body> haben, im iFrame-Dokument steht aber ein komplettes HTML-Dokument mit <head> und <html>. Auch deshalb ist eine echte Quellen-Angabe im src-Attribut des iFrames im Prinzip egal, da das Dokument von Grund auf neu erstellt wird.
Liebe Grüße,
Felix Riesterer.