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

标签 javascript html ios xhtml dom-events

我有一个 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);

希望这能解决您的问题。

关于javascript - 使用 JavaScript 查找选定文本的开始和结束索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8641606/

相关文章:

html - CSS flexbox-制作一个div来获取它的内容高度和宽度不起作用

javascript - 播放新轨道时自动暂停 mediaelement.js 音频播放器

javascript - websocket onclose 未在 chrome 中触发 - linux 当客户端与网络断开连接时

javascript - 如何从 jQuery 异常中获取消息

html - 斜丝带的制作方法

ios - 以一定角度将文本绘制到图像上 [Swift 3]

javascript - 关闭另一个选项卡/窗口

html - 如何消除div框的边距

objective-c - (AppDelegate *)的含义

ios - 如何将 bgra8Unorm iOS-Metal 纹理转换为 rgba8Unorm 纹理?