Safari中Range的startContainer属性表现异常的技术问询
跨浏览器选中内容时Range.startContainer的兼容性问题
我搭建了一个简单的测试环境来复现问题:
window.addEventListener("DOMContentLoaded", (event) => { document.addEventListener("mouseup", (event) => { let selection = document.getSelection(); let range = selection.getRangeAt(0); console.log(range.startContainer); }); });
<p>startbuffer<span>test</span>endbuffer</p>
当选中“endbuffer”文本时,Safari中range.startContainer属性指向包裹“test”的<span>元素,而Firefox中该属性指向“endbuffer”对应的文本节点,这才是符合预期的行为。
我需要跨浏览器一致地获取选中内容的startContainer,以便对选中节点执行操作。
我无法理解Safari的这一逻辑,为何一个完全不在选中范围内的节点会成为startContainer?

内容的提问来源于stack exchange,提问作者Guesser
相关产品推荐
相关产品推荐

