gpt4 book ai didi

javascript - Rangy:如何根据父节点扩展选择?

转载 作者:行者123 更新时间:2023-11-30 13:26:20 24 4
gpt4 key购买 nike

被选中的html:

some te<b>xt here is bold</b>ed, I guess
|______________________| <- the selection range

所以,选择的 .toHtml() 是这样的:

<b>ere is bold</b>ed, I gue

但这不是在原始文件中。

所以,我想做的是扩大选择范围,使其包含整个 BOLD 标签。

这很容易检测,因为你只需要做一个测试,如果

a = rangy.getSelection()
a.anchorNode.parentElement != a.focusNode.parentElement

文档指出范围有一个 setStartBefore(Node) 方法:http://code.google.com/p/rangy/wiki/RangyRange

所以,我得到了当前范围

b = a.getRangeAt(0)

并尝试设置StartBefore :

b.setStartBefore(a.anchorNode.parentNode)

因为我是在控制台中完成这一切的,所以我会立即得到反馈

undefined

是什么导致了这种情况,我将如何绕过它来找到我想要解决的问题的解决方案?

更新:根据 Tim Down 的建议,我尝试了以下方法:
enter image description here原文:
enter image description here

它应该扩展到包括 Mass Ef 不应该吗?

更新 2:

解决方案(根据 Tim Down) enter image description here

最佳答案

您需要重新选择范围:

a.setSingleRange(b);

顺便说一下,parentElement 并未得到普遍支持:它仅在 IE 中启动,最近才进入 DOM4 spec Firefox 尚不支持(显然是 support is coming in Firefox 9.0)。您需要基于 parentNodenodeType 的解决方法。

关于javascript - Rangy:如何根据父节点扩展选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8312040/

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