我正在尝试组合一个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。
我的问题:
使用Range()对象时,是否可以跟踪我所在的<p>
标记?我最终会在这个div标签中有更多的html元素,但是希望能够获得选择的索引范围,就好像它都是一个字符串一样,忽略了里面的所有html元素。
感谢您的帮助!