Heim > Web-Frontend > js-Tutorial > Wie platziere ich das Caret-Zeichen am Ende des Textes in einem „inhaltsbearbeitbaren' Pre-Element konsistent in allen Browsern?

Wie platziere ich das Caret-Zeichen am Ende des Textes in einem „inhaltsbearbeitbaren' Pre-Element konsistent in allen Browsern?

Patricia Arquette
Freigeben: 2024-11-23 02:31:10
Original
862 Leute haben es durchsucht
<p>How to Place the Caret at the End of Text in a `contenteditable` Pre Element Consistently Across Browsers?

Einfügen eines Caretzeichens am Ende des browserübergreifenden Textes

<p>In HTML ist
contenteditable
Mit Elementen können Benutzer Text direkt innerhalb des Elements bearbeiten. Es kann jedoch zu browserübergreifenden Inkonsistenzen bei der Behandlung von Zeilenumbrüchen kommen.

Browserübergreifende Zeilenumbruchunterschiede

<p>Die Ausgabe von
contenteditable
Elemente variieren je nach Browser: Chrome platziert ein
<div>
Innerhalb des Zeilenumbruchs fügt Firefox ein
<br />
ein und Internet Explorer fügt ein
<p>
hinzu.

Einstellung Caret am Ende des Textes

<p>Um das Caret in allen Browsern einheitlich am Ende des Textes zu positionieren, verwenden Sie das folgende JavaScript Funktion:

function placeCaretAtEnd(el) {
    el.focus();
    if (typeof window.getSelection != "undefined"
            &amp;&amp; typeof document.createRange != "undefined") {
        var range = document.createRange();
        range.selectNodeContents(el);
        range.collapse(false);
        var sel = window.getSelection();
        sel.removeAllRanges();
        sel.addRange(range);
    } else if (typeof document.body.createTextRange != "undefined") {
        var textRange = document.body.createTextRange();
        textRange.moveToElementText(el);
        textRange.collapse(false);
        textRange.select();
    }
}
Nach dem Login kopieren

Beispielverwendung

<p>Um diese Funktion zu nutzen, fügen Sie einen Ereignis-Listener an eine Schaltfläche an, die beim Klicken die Funktion aufruft, um die Einfügemarke am Ende des Textes zu platzieren:

$(document).ready(function()
{
    $('#insert_caret').click(function()
    {
        placeCaretAtEnd($('#content'));
    }
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie platziere ich das Caret-Zeichen am Ende des Textes in einem „inhaltsbearbeitbaren' Pre-Element konsistent in allen Browsern?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage