使用JavaScript查找选定的文本开始和结束索引

Find selected text start and end index with JavaScript

本文关键字:开始 结束 索引 文本 JavaScript 查找 使用      更新时间:2023-09-26

我有一个ePub Book XHTML页面,其中有许多p(段落)标签。

现在我在JS中通过以下函数获得关于body标签的选定文本索引:

var fullString = document.getElementsByTagName("body")[0].textContent;
if (window.getSelection) 
{               
    var range = window.getSelection ();                     
    var startPosition = fullString.search(range);
    var getPosition = range.toString();
    var endPosition = parseInt(getPosition.length) + parseInt(startPosition);
    alert("Start position if : " + startPosition + " and End position : " + endPosition);
    start_position = startPosition;
    end_position = endPosition;                               
}

当选择仅在一个p标签中时,它返回正确的索引。

但是由于选择覆盖了多个p标签,我的起始位置为"-1"。

你能帮我摆脱这个吗?

请试试下面这行,你会成功的

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