在内容可编辑元素中操作插入符号
问题:如何有效地将插入符号移动到文本的末尾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中文网其他相关文章!