【发布时间】:2016-11-24 08:22:09
【问题描述】:
我的 HTML:
<div id="text" contenteditable="true">abcd<img src="icon.gif"/>efgh</div>
我的caret = 5; 所以我想将插入符号的位置设置在图像之后,因为图像被视为 1 个字符。
所以我写了这个代码:
var node = document.querySelector("div");
node.focus();
var textNode = node.firstChild;
var caret = 5;
var range = document.createRange();
range.setStart(textNode, caret);
range.setEnd(textNode, caret);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
但我收到此错误:
未捕获的 DOMException:无法在“Range”上执行“setStart”:偏移量 5 大于或等于节点的长度 (4)。
请建议我如何实现这一目标?在我想要的插入符号位置之前,我可能有几张图片,每张图片都将被视为 1 个字符。
【问题讨论】:
标签: javascript contenteditable caret