首页 >web前端 >js教程 >如何将插入符号移动到 ContentEditable 元素的末尾?

如何将插入符号移动到 ContentEditable 元素的末尾?

Linda Hamilton
Linda Hamilton原创
2024-11-09 07:04:02237浏览

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

在内容可编辑元素中操作插入符号

问题:如何有效地将插入符号移动到文本的末尾contenteditable 元素,模仿 Gmail 笔记中的行为小部件?

StackOverflow 提供的解决方案适用于输入元素,但不适用于 contenteditable 元素。本文提出了一种专门针对 contenteditable 元素的定制方法。

解决方案:

对于支持 contenteditable 的浏览器,以下 JavaScript 函数可以完成所需的插入符号移动:

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

用法示例:

要将插入符号移动到 ID 为“txt1”的元素的末尾:

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

以上是如何将插入符号移动到 ContentEditable 元素的末尾?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn