Bestimmen der Caret-Position in einem Textbereich in Zeichen von Anfang an
Bestimmen der Caret-Position in einem
In Mozilla-basierten Browsern wie Firefox und Safari können Sie direkt auf textarea.selectionStart zugreifen, um die Position der Einfügemarke zu ermitteln Begriffe der Charaktere von Anfang an. Für Browser wie Internet Explorer funktioniert dieser Ansatz jedoch möglicherweise nicht.
Für browserübergreifende Kompatibilität können Sie die folgende JavaScript-Funktion implementieren:
function getCaret(node) { if (node.selectionStart) { return node.selectionStart; } else if (!document.selection) { return 0; } var c = "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; }
Diese Funktion nutzt die document.selection Objekt, das im IE verfügbar ist, um die Position des Cursors zu bestimmen. Zunächst wird ein Bereichsobjekt erstellt, dupliziert und der Bereich an den Anfang des Textbereichs verschoben. Anschließend fügt es an der Position des Caretzeichens ein Sonderzeichen ein und berechnet die Länge des nachfolgenden Textes. Dadurch wird die zeichenbasierte Position bereitgestellt.
Für eine umfassendere Lösung gibt es Plugins wie das jQuery FieldSelection Plugin, die erweiterte Funktionen zur Textauswahl und -bearbeitung in Textbereichen bieten.
Abschließend ist es wichtig zu beachten dass der Code einen Abschnitt „Bearbeiten“ mit einer aktualisierten Implementierung der getCaret-Funktion enthält, die optimierter ist. Sehen Sie sich unbedingt das aktualisierte Codebeispiel für die neueste Version der Funktion an.
Das obige ist der detaillierte Inhalt vonWie erhalte ich die Caret-Position in einem Textbereich in Zeichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!