molily: Editierbare "Textfelder" in HTML

Beitrag lesen

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.

Vielleicht hilft dir dann dieses einfache Beispiel weiter.
http://molily.de/temp/execcommand.html

Wenn man mit execCommand arbeitet, dann ändert sich die Knotenstruktur, weil Elemente eingefügt und die Textknoten aufgesplittet werden. D.h. man muss generischer prüfen, ob die ausgewählten Knoten im RTE-Bereich liegen. Das geht gut mit compareDocumentPosition bzw. contains, siehe Quellcode.

Das Beispiel funktioniert in Firefox 3.6, Safari 5.0.4, Chrome 10 sowie IE 8 & 9.

Ich hab's vermutlich schon verlinkt, hier zwei Beispielscripte, die allgemein die Arbeit mit window.getSelection() und W3C DOM Ranges bzw. document.selection und Microsoft TextRanges illustrieren:
http://molily.de/weblog/selectionmenu-copylink
https://github.com/molily/selectionmenu

Mathias