gpt4 book ai didi

javascript - 如何查看用户选择是否在 HTML 范围内

转载 作者:太空狗 更新时间:2023-10-29 16:05:10 30 4
gpt4 key购买 nike

我正在开发一个 Firefox 插件,它可以转换用户通过用户选择突出显示的屏幕温度。转换后,用户选择将替换为 ID 为 alreadyconvertedspan HTML 元素,其中包含原始温度和括号中的转换温度。代码中一个明显的错误是用户可以通过并选择转换后的温度并无限转换它。

我想要的是让我的 Javascript 代码检测用户选择何时包含在 span 元素内、与 span 元素重叠或包含整个 span 元素。我如何让 Javascript 检测用户何时选择了该 span 的全部或部分内容?

我在 StackOverflow 上看到了类似的问题,但它想知道用户选择何时完全包含在特定元素中。这不完全是我想要的,但我不确定我需要更改代码以使其满足我的需要。

查看该线程的 JS Fiddle:http://jsfiddle.net/eT8NQ/

最佳答案

查看 MDN 的 Select 文档,似乎已经直接支持此功能。参见 Selection.containsNode() .

我已经 updated your fiddle ,现在它会正确返回一个 bool 值,无论元素的任何部分是否在您的选择中。

function elementContainsSelection(el) {
if (window.getSelection) {
var sel = window.getSelection();
if (sel.rangeCount > 0) {
return sel.containsNode(el, true);
}
}
return false;
}

除非设置了 aPartlyContained 标志,否则此函数默认返回 false。然后部分包含也将返回 true。

aPartlyContained

When true, containsNode() returns true when a part ofthe node is part of the selection.

When false, containsNode() onlyreturns true when the entire node is part of the selection.

关于javascript - 如何查看用户选择是否在 HTML 范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39006748/

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