内容可编辑元素中设置插入符

内容可编辑元素中设置插入符

This question already has answers here:
How to set caret(cursor) position in contenteditable element (div)?

(11个答案)


4年前关闭。




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

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/

10-09 23:50