我遇到了只在 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/