javascript - 无论如何 getSelection 方法忽略html标签
问题描述
我想保存范围,并在重新加载页面后使用这些值突出显示(例如黄色),但问题是getRangeAt(0)不能正确返回范围。它的范围在任何 html 标签后重新启动,我该如何解决这个问题?
<p id="content">
hello <br> John
</p>
document.addEventListener("selectionchange", () => {
$("#content").bind("touchend mouseup", function() {
var t = window.getSelection();
var range=t.getRangeAt(0);
var text=t.toString();
if(text! = "") {
var rect = range.getBoundingClientRect();
var start=range.startOffset;
var end=range.endOffset;
console.log(start, ' = ', end);
}
});
});
在这种情况下,如果我选择“hello”,getRangeAt(0) 返回 0,4,然后如果我选择“John”,它会再次返回 0,4。
解决方案
推荐阅读
- excel - Excel中水平文本数组的模式
- ipfs - IPFS 中的可变文件系统与常规文件 API
- flutter - Flutter,Facebook Audience Network 广告横幅在进入另一个屏幕时不显示
- linux - AF_XDP 零拷贝 - 操作不支持错误
- amazon-web-services - 使用 AWS SAM 时出现“存储桶名称必须与正则表达式匹配”错误
- android - 为什么我得到的是 .aab 文件而不是 .apk 文件?
- python - 需要帮助/推荐python。“访问”对象没有属性“用户名”
- python - 如何使用 python 通过用户输入在范围内打印一定数量的结果?
- php - Woocommerce 获取每个项目变化的库存数量
- java - 你什么时候在神经网络中实现 Sigmoid 函数?