gpt4 book ai didi

javascript - webkit 浏览器中来自 getClientRects 的 clientRect 语义

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:01 29 4
gpt4 key购买 nike

在 webkit 浏览器中(这在 IE9 或 Mozilla 中似乎不是问题)当查询 clientRects (getClientRects) 的范围时,返回的 clientrects 包含与所选文本相对应的文本矩形,但也包含 clientrects范围内任何元素的开始。如何确定哪些客户端属于元素。

例如,假设这个段落是用我在这里的相同换行符呈现的:

<p>This is some text StartSelection in a paragraph 
blah blah<span>this is some EndOfSelection blah
more text</span>
</p>

如果我从 StartSelection 到 EndOfSelection 中进行选择,然后从选择中查询范围 - getRangeAt(0)

我会取回这个 clientRects 数组:

0. rect of 'StartSelection in a paragraph'
1. rect of 'blah blah'
2. rect of 'this is some EndOfSelection blah'
3. rect of 'more text'
4. rect of 'this is some EndOfSelection'

我想要的唯一矩形是 0、1 和 4。矩形 2 和 3 表示选择交叉的元素的开始标记的内容。

矩形的几何检查允许我丢弃 2 和 3,但代码让我觉得有点脆弱,特别是如果我的选择要扩展到第三行。有没有办法在没有几何检查的情况下确定矩形的来源,我可以用它来丢弃 2 和 3?

最佳答案

据我所知,没有。 Range 的这个特性在所有浏览器中都是相对较新的,我看到的关于它的文章很少,所以我认为它没有被广泛使用并且很可能存在浏览器错误。例如,这似乎是一个 WebKit 错误,因为在我看来,快速阅读似乎违反了 the part of the CSSOM View spec pertaining to Ranges .

关于javascript - webkit 浏览器中来自 getClientRects 的 clientRect 语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232723/

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