我需要在 Chrome 中的 contenteditable div 中设置插入符号位置,但我知道插入符号位置,即 div 的 HTML 中的字符索引。div 里面可能有其他元素。
到目前为止我得到的最好的是将插入符号位置设置在 div 的末尾或开头
domNode.focus();
if (window.getSelection) {
var sel = window.getSelection();
//sel.collapseToStart();
//sel.collapseToEnd();
sel.collapse(domNode, caretPos);
}
我还尝试在选择上调用“修改”以手动逐字移动光标并计算所选文本的长度,但如果有一个元素挡住了文本会停止,例如如果 div 内容是“ hello <span>world</span>
”,那么所选节点的文本只会hello
。