我正在尝试编写一个 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 元素。
感谢所有的帮助!