首页 >web前端 >js教程 >如何将光标移动到 ContentEditable 元素的末尾?

如何将光标移动到 ContentEditable 元素的末尾?

Patricia Arquette
Patricia Arquette原创
2024-11-11 01:50:02964浏览

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

将光标移动到 Contenteditable 实体的末尾

曾经遇到过需要将光标定位到 contenteditable 元素的末尾的情况,类似于Gmail 笔记小部件中的功能?

解决方案

对于contenteditable元素,Geowa4的解决方案不适用。需要量身定制的方法:

function setEndOfContenteditable(contentEditableElement) {
  var range, selection;
  if (document.createRange) {
    // Modern browsers
    range = document.createRange();
    range.selectNodeContents(contentEditableElement);
    range.collapse(false);
    selection = window.getSelection();
    selection.removeAllRanges();
    selection.addRange(range);
  } else if (document.selection) {
    // IE 8 and below
    range = document.body.createTextRange();
    range.moveToElementText(contentEditableElement);
    range.collapse(false);
    range.select();
  }
}

要使用它,只需按照代码示例操作:

var elem = document.getElementById("txt1");
setEndOfContenteditable(elem);

兼容性

此解决方案是兼容所有支持 contenteditable 的主流浏览器。

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

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