Contenteditable text-editor und der cursor-position
Wie kann ich (mit Hilfe von jquery oder anderen) html einfügen an der cursor/Einfügemarke position meines contenteditable div:
<div contenteditable="true">Hello world</div>
Zum Beispiel, wenn Sie den cursor/Einfügemarke zwischen "Hallo" und "Welt", und der Benutzer dann auf eine Taste, zB "Bild einfügen", dann mit javascript, so etwas wie <img src=etc etc>
eingefügt würde zwischen "Hallo" und "Welt". Ich hoffe, ich habe deutlich gemacht =S
Beispiel-code wäre sehr dankbar, vielen Dank!
InformationsquelleAutor Cal S | 2010-05-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die folgende Funktion fügt einem DOM-node (ein element oder text-Knoten) an der cursor-position in allen mainstream-desktop-Browser:
Wenn Sie lieber legen Sie eine HTML-Zeichenkette:
Habe ich angepasst diese aus meiner Antwort auf eine ähnliche Frage: So finden Sie cursor-position in eine contenteditable DIV?
InformationsquelleAutor Tim Down
Mit
contenteditable
Sie verwenden sollten,execCommand
.Versuchen
document.execCommand('insertImage', false, 'image.jpg')
oderdocument.execCommand('insertHTML', false, '<img src="image.jpg" alt="" />')
. Die zweite funktioniert nicht in älteren IE.alt
- tags, um ein Bild; insertImage gescheitert.Dies funktioniert nicht in safari für iOS-Anwendung. Es ist nicht das einfügen von html-strings mit Bild tage oder Befestigung an der cursor-position. Können Sie schlagen einige Lösung.
InformationsquelleAutor Znarkus
in diesem code habe ich nur ersetzen, html code mit (") zu (')
verwenden Sie die folgende syntax:
InformationsquelleAutor yash patel
Ich würde empfehlen die Verwendung der jquery-plugin a-tools
Dieses plugin hat sieben Funktionen:
Die eine, die Sie brauchen, ist insertAtCaretPos:
Es könnte ein draw-back: das Plugin funktioniert nur mit textarea-en Eingabe: - text-Elemente, so kann es zu Konflikten mit contenteditable.
InformationsquelleAutor Zilverdistel