WYSIWYG - browserübergreifender Texteditor
chaostilo
- javascript
0 Felix Riesterer
0 cham
Hallo,
ich hoffe mit meiner für JavaScript-Kenner wohl absolut plumpen Frage nicht gleich ausgelacht zu werden...
Ich möchte für einen Online-Shop, der nicht von mir administriert wird ein CMS schreiben, da der Admin keinerlei HTML-Kenntnisse o. ä. hat.
Die Artikelbeschreibung sollte mit einem kleinen Editor formatierbar sein um z. B. Textabsätze in längeren Beschreibungen zu ermöglichen.
Sprich, ich benötige einen Wysiwyg, den ich gern selbst stricken wollte um auch zu lernen wie's geht und habe das DHTML-Tutorial von ZDNet mehr oder weniger abgetippt...
http://www.zdnet.de/builder/program/0,39023551,39138120-3,00.htm
Soweit so gut...ein editierbares iFrame kommt dabei schon raus, nur muss ich das body-Element des iFrames auslesen um diesen HTML-Quelltext dann in ein Formular einzubinden und an die Datenbank zu schicken.
In die Datei empty.html des Tutorials habe ich bereits einen Text eigegeben (also eine Art Vorbelegung) und dann versucht schon mal vor der Bearbeitung, den Inhalt des iFrames mit:
<script language="JavaScript">
var text = parent.editor.document.getElementsByTagName("body")[0].innerHTML;
document.write(text);
</script>
auszulesen und wiederzugeben...das Script steht nach dem Iframe und müsste normalerweise den Quelltext von empty.html zwischen den bodytags einbinden...also meine Textvorbelegung wiedergeben.
Irgendwie erfolgt allerdings keinerlei Ausgabe, auch keine
Fehlermeldung...die Variable scheint leer zu sein.
Dazu muss ich sagen, dass das Formular selbst in einem Frameset läuft. Ich vermute den Fehler irgendwie in der Zuweisung des Wertes für die Variable "text".
Nun bin ich ein absoluter JavaScript-Neuling und die zwar ziemlich umfangreiche Literatur und das Internet geben für dieses Problem nicht allzuviel her (vermutlich bin ich der einzige auf dieser Welt der es nicht packt ;-) ).
Für konstruktive Hilfe schon mal recht herzlichen Dank im Voraus.
Lieber chaostilo,
ich experimentiere gerade auch mit editierbaren iframes. Dabei habe ich eines gelernt: Das Dokument im iframe muss erst geladen sein, bevor man auf das <body>-Element darin zugreifen kann! Solltest Du also ein HTML-Dokument in Deinen iframe laden, so musst Du erst prüfen, ob das Dokument geladen wurde, ehe Du auf seinen Inhalt zugreifst.
Mein Vorschlag: Schreibe im parent des iframes eine Funktion, die per <body onload="parent.initCMS()"> aus dem iframe nach dem vollständigen Laden aufgerufen wird. Ich persönlich definiere keine Quelle für mein iframe, sondern schreibe den kompletten Quelltext per iframe.document.write() hinein. Dadurch erspare ich mir zum einen die zusätzliche HTML-Datei und zum anderen die onload-Geschichte.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
hi,
ich möchte euch auf keinen fall den spaß verderben, aber ich habe auch mal länger nach so einem editor gesucht, dann HTMLArea gefunden, dessen Entwicklung dann aber leider auf eis gelegt wurde. lange rede kurzer sinn: GPL => wer anders hat's weitergemacht: hier der link:
http://xinha.python-hosting.com/