Maison  >  Article  >  interface Web  >  Comment placer le curseur à la fin du texte dans un pré-élément « contenteditable » de manière cohérente dans tous les navigateurs ?

Comment placer le curseur à la fin du texte dans un pré-élément « contenteditable » de manière cohérente dans tous les navigateurs ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-23 02:31:10802parcourir
<p>How to Place the Caret at the End of Text in a `contenteditable` Pre Element Consistently Across Browsers?

Définition du signe d'insertion à la fin du texte multi-navigateur

<p>En HTML,
contenteditable
Les éléments permettent aux utilisateurs de modifier le texte directement dans l'élément. Cependant, il peut y avoir des incohérences entre les navigateurs dans la façon dont les sauts de ligne sont gérés.

Différences de saut de ligne entre les navigateurs

<p>La sortie de
contenteditable
les éléments varient selon les navigateurs : Chrome place un
<div>
dans le saut de ligne, Firefox insère un
<br />
et Internet Explorer ajoute un
<p>
.

Paramètre Caret à la fin du texte

<p>Pour positionner systématiquement le caret à la fin du texte dans tous les navigateurs, utilisez ce qui suit Fonction JavaScript :

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();
    }
}

Exemple d'utilisation

<p>Pour utiliser cette fonction, attachez un écouteur d'événement à un bouton qui, lorsque vous cliquez dessus, appelle la fonction pour placer le curseur à la fin du texte :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn