【发布时间】:2013-05-20 03:44:36
【问题描述】:
我有一个contentEditable div,其中有多个标签(br、b、u、i)和文本。
我需要获取相对于 div 的插入符号索引位置,包括所有标签。
例如:
<div id="h" contenteditable="true">abc<b>def<br>ghi</b>jkl</div>
如果光标在g 和h 之间,我需要插入符号索引位置为14。
问题是找到的使用treeWalker 的方法在这种情况下不起作用。
没有找到粗体标签...可能是因为它没有关闭。
我也尝试了几种方法,但仍然没有运气。
我需要它在 Firefox 中工作。 谢谢。
【问题讨论】:
-
为什么需要这个号码?这本质上是没有意义的,因为有很多方法可以用不同的 HTML 来表示同一个 DOM,这会影响数字(例如,使用
<br />而不是<br>)。我假设你想要这个,这样你就可以获得相对于你从服务器发送到浏览器的 HTML 字符串的偏移量。 -
是的...这正是我需要这个号码的原因。我尝试了几种方法,但仍然没有成功。
-
无法通过 DOM 取回原始 HTML 字符串,因此您需要通过 Ajax 重新请求页面,解析 HTML 并将其与当前 DOM 匹配。这将是相当棘手的。
标签: javascript html contenteditable getcaretpos