javascript - 在内容可编辑元素中设置插入符号位置

标签 javascript

<分区>

我想在内容可编辑元素中设置插入符位置,但它似乎不起作用。

var el = document.getElementsByTagName('div')[0];
var range = document.createRange();
var sel = window.getSelection();
range.setStart(el, 2);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
el.focus();
<div contenteditable>Hi ! How are you doing ?</div>

最佳答案

试试这个:
只需将 range.setStart(el, 2) 替换为 range.setStart(el.childNodes[0], 2)

var el = document.getElementsByTagName('div')[0];
var range = document.createRange();
var sel = window.getSelection();
range.setStart(el.childNodes[0], 2);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
el.focus();
<div contenteditable>Hi ! How are you doing ?</div>

您将错误的节点传递给 setStart 函数。 需要传递一个文本节点。

关于javascript - 在内容可编辑元素中设置插入符号位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40632975/

相关文章:

javascript - 什么 'something'? 'something' : 'something' operator means?

javascript - 如何发送 Jquery var 以在 CSS 属性中使用

javascript - ExtJS - 远程过滤导致问题

javascript - 省略 mongodb 中不必要的属性

javascript - Django:如何将 javascript var 作为 ajax 中的参数传递给 Django URL?

javascript - 通过javascript访问对象键值

javascript - Vue.js 转换不适用于页面首次加载

javascript - Cordova 3.0 - 在 iOS 的外部浏览器中打开链接

javascript - setInterval 在第一次运行时不会触发内部脚本

javascript - 在 javascript 中将对象成员(如 this.member)传递给类方法