现在我正试图在一个div中获取一个选择的范围。问题是:当我有一个这样的div,并选择一个包含多个内部HTML节点的区域时,我得到了这样的结果:"我的选择范围是:"。
<div> Lorem <p> ipsum dolor sit amet, <b> consetetur <b> sadipscing elitr, <i>sed</i> diam nonumy eirmod tempor invidunt </p> ut l </div>
并选择一个包含多个内部HTML节点的区域,我得到的结果是这样的:startOffset: 10, endOffset: 2
而不是 startOffset: 10, endOffset: 12
.
本质上,我想得到的是忽略div内的HTML的选择。
我想这是你想要的。
document.addEventListener("click", function () {
if (window.getSelection) {
let text=window.getSelection().toString();
let range=window.getSelection().getRangeAt(0);
console.log(range.startContainer.textContent, range.startOffset, range.endOffset)
}
}
, false);
<div> Lorem
<p> ipsum dolor sit amet, <b> consetetur <b> sadipscing elitr, <i>sed</i> diam nonumy
eirmod tempor
invidunt </p> ut l </div>