gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 01:47:53 25 4
gpt4 key购买 nike

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

我有一个 RichTextArea,当我获得一个 Selection 对象(我可以从中获取 Range 对象)时,我需要找出该 RichTextArea(这是一个存在于 iframe 中的文档)中的绝对字符位置.

问题是,Selection/Range api 是非常相对论设计的——它可以告诉你你在哪个文本节点,父元素是什么,等等,但似乎不能轻易地提供绝对的文档本身中的字符位置。

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

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

最佳答案

没有什么容易内置的。您可以通过使用另一个范围来稍微缓解痛苦,该范围跨越 contenteditable 元素开始和选择开始之间的 DOM 部分,并调用 toString()在上面,如 saveSelection()本例中的函数:

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

这里有一个仅针对插入符号的类似示例,以及有关此方法缺点的注释(例如,<br> 元素和不影响字符数的 block 元素隐含的换行符):

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

关于JavaScript:如何从 Selection/Range 对象开始获取绝对字符位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com