4

我正在尝试编写一个 java 脚本,当用户选择特定 div id 中的某些文本时,它将返回该选择的开始和结束索引,而忽略内部 html 标记。

考虑以下示例:

<p>Some text that will be ignored</p>
<div id="X">
    <p>Here is some text that should be considered</p>
    <p>Here is a bit more <span>tex</span>t in a separate paragraph but the same div id</p>
</div>

现在,如果我突出显示be considered. Here is并使用

var currentRange = window.getSelection().getRangeAt(0);

console.log('startContainer\t'+currentRange.startContainer);
console.log('startOffset\t'+currentRange.startOffset);
console.log('endContainer\t'+currentRange.endContainer);
console.log('endOffset\t'+currentRange.endOffset);
console.log('textLength\t'+currentRange.toString().length);
console.log('text\t'+currentRange.toString())

我得到 startOffset:29 和 endOffset: 4。

我的问题:

<p>使用 Range() 对象时是否可以跟踪我所在的标签?我最终将在这个 div 标记中有更多的 html 元素,但希望能够获得选择的索引范围,就好像它都是一个字符串一样,忽略里面的所有 html 元素。

感谢所有的帮助!

4

0 回答 0