Fügen Sie HTML in caret in einem contenteditable div ein
Ich habe ein div mit contenteditable gesetzt und ich bin die Erfassung Tastendruck-mithilfe von jquery zu preventDefault() wenn Sie die enter-Taste gedrückt wird. Ähnlich diese Frage, die fügt den text an der cursor, ich möchte direkt mit "html einfügen", für die Kürze werden wir sagen, das ein br-tag. Mit der Antwort auf die Frage oben eigentlich funktioniert im IE, wie es verwendet die range.pasteHTML-Methode, aber in anderen Browsern wird das br-tag erscheinen würde, als plain-text und nicht in html. Wie könnte ich ändern, die Antwort zum einfügen von html und nicht text ?
InformationsquelleAutor der Frage Niall | 2011-07-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
In den meisten Browsern, die Sie verwenden können, die
insertNode()
- Methode des Range-Sie erhalten aus der Auswahl. Im IE < 9 können SiepasteHTML()
, wie Sie bereits erwähnt. Unten ist eine Funktion, um dies zu tun, die in allen gängigen Browsern. Wenn content ist bereits markiert ist, wird es ersetzt, so ist dies effektiv eine einfügen-operation. Auch habe ich einen code Hinzugefügt, um platzieren Sie die Einfügemarke nach dem Ende der eingefügten Inhalte.jsFiddle: http://jsfiddle.net/jwvha/1/
Code:
UPDATE 21. AUGUST 2013
Wie gewünscht in den Kommentaren, hier ist ein Aktuelles Beispiel mit einem zusätzlichen parameter, der angibt, ob oder ob nicht, wählen Sie den eingefügten Inhalt.
Demo: http://jsfiddle.net/timdown/jwvha/527/
Code:
InformationsquelleAutor der Antwort Tim Down
InformationsquelleAutor der Antwort user3126867
InformationsquelleAutor der Antwort Alex G