Heim >Web-Frontend >js-Tutorial >Wie kann ich die Position der Caret-Spalte in einem Textbereich browserübergreifend zuverlässig ermitteln?
Ermitteln der Caret-Spaltenposition in Zeichen in einem Textbereich
Bestimmen der Caret-Spaltenposition in einem
Für Browser wie Firefox und Safari bietet die Verwendung von textarea.selectionStart eine einfache Lösung. Im Internet Explorer ist jedoch ein alternativer Ansatz erforderlich. Hier ist eine robuste Lösung, die beide Fälle abdeckt:
function getCaret(node) { if (node.selectionStart) { return node.selectionStart; } else if (!document.selection) { return 0; } var c = "<pre class="brush:php;toolbar:false">function getCaret(el) { if (el.selectionStart) { return el.selectionStart; } else if (document.selection) { el.focus(); var r = document.selection.createRange(); if (r == null) { return 0; } var re = el.createTextRange(), rc = re.duplicate(); re.moveToBookmark(r.getBookmark()); rc.setEndPoint('EndToStart', re); return rc.text.length; } return 0; }1", sel = document.selection.createRange(), dul = sel.duplicate(), len = 0; dul.moveToElementText(node); sel.text = c; len = dul.text.indexOf(c); sel.moveStart('character',-1); sel.text = ""; return len; }
Darüber hinaus bietet das jQuery FieldSelection Plugin eine praktische Möglichkeit, die Caret-Position abzurufen und erweiterte Textauswahlvorgänge durchzuführen.
Aktualisierte Implementierung:
Hier ist eine aktualisierte Version der getCaret-Funktion, die Verbesserungen bietet Genauigkeit:
Mit diesen Lösungen können Sie effektiv die genaue Caret-Position innerhalb eines
Das obige ist der detaillierte Inhalt vonWie kann ich die Position der Caret-Spalte in einem Textbereich browserübergreifend zuverlässig ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!