Heim > Web-Frontend > js-Tutorial > Wie kann ich die Caret-Position in einem ContentEditable-Div genau festlegen?

Wie kann ich die Caret-Position in einem ContentEditable-Div genau festlegen?

DDD
Freigeben: 2024-12-10 03:46:09
Original
517 Leute haben es durchsucht

How Can I Accurately Set the Caret Position in a ContentEditable Div?

Einfügen der Caret-Position in einem inhaltsbearbeitbaren Element

Das Ziel, das Caret an einer genauen Stelle innerhalb eines inhaltsbearbeitbaren div-Elements festzulegen, kann eine herausfordernde Aufgabe sein . Wenn Sie Hilfe von der Online-Community suchen, sind Sie möglicherweise auf eine JavaScript-Lösung gestoßen, die der folgenden ähnelt:

const range = document.createRange();
const myDiv = document.getElementById("editable");
range.setStart(myDiv, 5);
range.setEnd(myDiv, 5);
Nach dem Login kopieren

Obwohl dieser Ansatz im Wissensspeicher des Webs vorhanden ist, hat er sich sowohl in Firefox als auch in Chrome als unwirksam erwiesen .

Umfassen der Reichweite und Auswahlobjekte

Um die Situation zu korrigieren und das Potenzial der zu erschließen Bereichs- und Auswahlobjekte sind von entscheidender Bedeutung. Diese Objekte dienen als Torwächter zur genauen Steuerung der Platzierung des Caretzeichens.

Um ihre Anwendung zu veranschaulichen, verschieben wir das Caretzeichen auf das fünfte Zeichen der zweiten Textzeile. So kann dies erreicht werden:

function setCaret() {
    var el = document.getElementById("editable")
    var range = document.createRange()
    var sel = window.getSelection()
    
    range.setStart(el.childNodes[2], 5)
    range.collapse(true)
    
    sel.removeAllRanges()
    sel.addRange(range)
}
Nach dem Login kopieren

HTML-Implementierung

Um diese Lösung vollständig zu integrieren, integrieren Sie den folgenden HTML-Code in Ihren Code:

<div>
Nach dem Login kopieren

Bei dieser Implementierung wird das Caret durch Klicken auf die Schaltfläche passend innerhalb des bearbeitbaren Div positioniert, sodass Sie eine genaue Kontrolle darüber haben Platzierung.

Das obige ist der detaillierte Inhalt vonWie kann ich die Caret-Position in einem ContentEditable-Div genau festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage