ich diesen Inhalt editierbare div in HTML habenGriff Caretposition in editierbare Inhalt div
<div contenteditable="true" id="TextOnlyPage"></div>
Und heres meine jQuery-Code
var rxp = new RegExp("(([0-9]+\.?[0-9]+)|([0-9]+))", "gm");
$('#TextOnlyPage').keyup(function(e){
if(e.keyCode == 13){
e.preventDefault();
$('#TextOnlyPage').children().each(function() {
if ($(this).is("div")) {
$(this).contents().unwrap();
}});
$('#TextOnlyPage').append("<br/>");
}
$('#TextOnlyPage').children().contents().unwrap();
var $this = $(this);
var content = $this.html();
$this.html(content.replace(rxp, "<span class='highlight'>$1</span>"));});
Problem ist die Position der Einfügemarke, denn wenn es span-Tags anwenden um Zahlen in string.replace-Methode, dann Cursor geht an den Anfang des Inhalts editierbare div
. Es kann auch nicht zur nächsten Zeile gehen, während ich die Eingabetaste drücke.
Ich weiß, dass ich es durch range
und selection
Objekte behandeln kann, kann aber keine nützliche Ressource finden, um zu verstehen, wie diese Objekte funktionieren.
Bitte geben Sie mir entweder Lösung für dieses Problem und es wird besser, wenn die Lösung in angularjs, oder bieten Sie mir eine Ressource, wo ich Bereich und Auswahl Objekte mit Arbeitsbeispielen verstehen kann.
Ich nehme an, Sie meinen die größer ist als [ '>'] und weniger als [ '<'] Zeichen, da es kein caret ist [ '^'] überall in dieser Beitrag? – ethorn10
@ ethorn10 Bei der Cursorposition bezieht sich das OP auf die Position des Einfügepunkts im Textfeld. –
@ ethorn10 Entschuldigung, ich habe dich nicht bekommen ..! – EMM