javascript - 使用 <ul> 进行文本选择的不正确行为

标签 javascript html firefox textselection

我遇到了只在 FF 中发生的错误文本选择行为。

通过点击 li 元素的项目符号 FF 显示选择跨越整个 li 元素但是在 JS 中获得这个选择范围导致只选择了 1 个字符,这显然是不正确的.

通过使用鼠标从文本开始拖动选择来选择文本为当前选择创建正确的范围

Live fiddle 在这里描述问题:http://jsfiddle.net/keaukraine/4ZE3a/

最佳答案

您误解了范围。范围边界表示为节点内的偏移量;如果该节点是文本节点,则它是该节点文本中的字符偏移量。但是,如果节点是一个元素,则偏移量是边界之前的子节点数,而不是字符偏移量。在这种情况下,选择范围的起始边界位于 <li> 中的偏移量 0 处。元素和结束边界位于 <li> 中的偏移量 1元素。 <li>元素只有一个子节点(文本节点),因此范围包含元素的所有内容。

关于javascript - 使用 <ul> 进行文本选择的不正确行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25119551/

相关文章:

firefox - 强制 Firefox 从 cookies.sqlite 中删除 SQLite 锁

javascript - 使用 Prototype JS 在特定位置插入 tr

javascript - 计算div在div中的位置

javascript - 有人可以解释以下 JavaScript 在做什么吗?

javascript - 使用异步/等待延迟强制请求之间的时间

html - 如何使用 Flex 水平和垂直对齐 div 中的元素

java - 如何以编程方式接受 cookie 的使用?

javascript - 我是否坚持为图像标签强制固定图像大小?

javascript - 为什么 Firefox 和其他浏览器在计算哪个数字更大时表现相反?

javascript - 如何在纯 Javascript 中进行无限滚动