Java脚本getSelection()忽略内部HTML[重复]。

问题描述 投票:-1回答:1

现在我正试图在一个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的选择。

javascript html selection
1个回答
0
投票

我想这是你想要的。

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>
© www.soinside.com 2019 - 2024. All rights reserved.