Big Bene: Editierbare "Textfelder" in HTML

Beitrag lesen

Wenn die Markierung innerhalb von Blatt ist, dann enthält anchorNode den , welcher Kind von <div id="Blatt"></div> ist.

Super, das scheint der Fehler zu sein! Danke nochmal!

Hier fehlen die () zum Aufruf der toString-Funktion.

»»

OK

document.getElementById("Blatt").firstChild.replaceData(start, (ende-start), (aTag + insText + eTag));

Hier nutzt du ja auch ausschließlich den einen Textknoten.

Ja, um den geht es auch.

Das ganze wird übrigens nicht funktionieren, wenn Blatt etwas anderes als bloß einen Textknoten enthält oder die Markierung darüber hinaus geht.  ...  Oder du willst wirkliches WYSIWYG, dann müsstest du davon ausgehen, dass Markierungen knotenübergreifend sein können und execCommand verwenden.

Das ist unter anderem der Sinn der Abfrage von anchorNode und focusNode: Wenn die Markierung ganz oder teilweise außerhalb von "Blatt" liegt, soll die Funktion nicht ausgeführt werden.

Das wird nicht funktionieren, du arbeitest nicht mit einem input-Element.

Jo, du hast recht, mein Fehler. Ich hatte zuerst eine textarea, und diese mit der Variable input identifiziert. Dann habe ich das ganze auf ein contenteditable div umgestellt. Dabei habe ich diesen Abschnitt einfach vergessen - ich war ja schon vorher an der Abfrage des anchorNode hängengeblieben.