首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript:如何从Selection/Range对象开始获取绝对字符位置?

JavaScript:如何从Selection/Range对象开始获取绝对字符位置?
EN

Stack Overflow用户
提问于 2014-02-05 07:44:38
回答 1查看 1.3K关注 0票数 2

我正在用GWT (Google Web Toolkit)编写带有一些嵌入式JavaScript的代码。

我有一个RichTextArea,当我被提供一个Selection对象(我可以从中获取Range对象)时,我需要找出该RichTextArea (它是一个驻留在iframe中的文档)中的绝对字符位置。

问题是,选择/范围api是非常相对论设计的-它可以告诉您所在的文本节点,父元素是什么,等等,但似乎不能轻松地提供文档本身内的绝对字符位置。

我在这里找到了相关的问题和讨论的问题,但这个问题尤其是我没有找到的。

我想我可以获得开始选择的文本节点,然后搜索/遍历文档,查找它并添加字符偏移量;这似乎是一种蛮力。有没有人知道是否有一种方法可以更直接地将字符偏移量放入给定选择/范围的文档中?您可能认为这类信息很容易由浏览器提供,但我还没有找到解决这个问题的方法。

EN

回答 1

Stack Overflow用户

发布于 2014-02-05 08:21:13

没有什么容易内置的。您可以通过使用跨越可内容编辑元素的开始部分和选择开始部分之间的DOM部分的另一个范围并对其调用toString()来略微减轻痛苦,如本例中的saveSelection()函数所示:

https://stackoverflow.com/a/13950376/96100

下面是一个类似的插入符号示例,以及关于此方法缺点的说明(例如,<br>元素和块元素隐含的换行符对字符数没有影响):

https://stackoverflow.com/a/4812022/96100

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21565929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档