>웹 프론트엔드 >JS 튜토리얼 >여러 브라우저에서 일관되게 'contenteditable' 사전 요소의 텍스트 끝에 캐럿을 배치하는 방법은 무엇입니까?

여러 브라우저에서 일관되게 'contenteditable' 사전 요소의 텍스트 끝에 캐럿을 배치하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-23 02:31:10865검색
<p>How to Place the Caret at the End of Text in a `contenteditable` Pre Element Consistently Across Browsers?

텍스트 크로스 브라우저 끝에 캐럿 설정

<p>HTML에서는
contenteditable
요소를 사용하면 사용자가 요소 내에서 직접 텍스트를 편집할 수 있습니다. 그러나 줄 바꿈을 처리하는 방법에는 브라우저 간 불일치가 있을 수 있습니다.

브라우저 간 줄 바꿈 차이점

<p>
contenteditable
요소는 브라우저에 따라 다릅니다. Chrome에서는
<div>
줄바꿈 안에 Firefox는
<br />
를 삽입하고 Internet Explorer는
<p>
를 추가합니다.

설정 텍스트 끝의 캐럿

<p>모든 브라우저에서 텍스트 끝 부분에 캐럿을 일관되게 배치하려면 다음 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();
    }
}

사용 예

<p>이 함수를 활용하려면 클릭 시 텍스트 끝에 캐럿을 배치하는 함수를 호출하는 버튼에 이벤트 리스너를 연결하세요.

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

위 내용은 여러 브라우저에서 일관되게 'contenteditable' 사전 요소의 텍스트 끝에 캐럿을 배치하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.