将光标移动到 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中文网其他相关文章!