我想在内容可编辑元素中设置插入符位置,但它似乎不起作用。
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 函数。
需要传递一个文本节点。