Heim >Web-Frontend >js-Tutorial >Wie verschiebe ich das Caretzeichen an das Ende eines ContentEditable-Elements?

Wie verschiebe ich das Caretzeichen an das Ende eines ContentEditable-Elements?

Linda Hamilton
Linda HamiltonOriginal
2024-11-09 07:04:02243Durchsuche

How to Move the Caret to the End of a ContentEditable Element?

Manipulieren des Einfügezeichens in inhaltsbearbeitbaren Elementen

Problem: Wie können Sie das Einfügezeichen effizient an das Ende von a verschieben? inhaltsbearbeitbares Element, das das Verhalten im Notizen-Widget von Gmail nachahmt?

StackOverflow bietet Lösungen, die für Eingabeelemente funktionieren, bei inhaltsbearbeitbaren Elementen jedoch fehlschlagen. Dieser Artikel stellt einen maßgeschneiderten Ansatz speziell für inhaltsbearbeitbare Elemente vor.

Lösung:

Für Browser, die inhaltsbearbeitbare Elemente unterstützen, kann die folgende JavaScript-Funktion die gewünschte Caret-Bewegung ausführen:

function setEndOfContenteditable(contentEditableElement) {
    // Determine browser support
    var range, selection;
    if (document.createRange) {
        // Modern browsers
        range = document.createRange();
        range.selectNodeContents(contentEditableElement);
        range.collapse(false); // Collapse to end of range
        selection = window.getSelection();
        selection.removeAllRanges();
        selection.addRange(range);
    } else if (document.selection) {
        // IE 8 and lower
        range = document.body.createTextRange();
        range.moveToElementText(contentEditableElement);
        range.collapse(false); // Collapse to end of range
        range.select();
    }
}

Verwendungsbeispiel:

Um die Einfügemarke an das Ende eines Elements mit der ID „txt1“ zu verschieben:

elem = document.getElementById('txt1');
setEndOfContenteditable(elem);

Das obige ist der detaillierte Inhalt vonWie verschiebe ich das Caretzeichen an das Ende eines ContentEditable-Elements?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn