首页 > web前端 > js教程 > 如何获取所选内容在其父容器中的开始和结束偏移量?

如何获取所选内容在其父容器中的开始和结束偏移量?

Patricia Arquette
发布: 2024-11-19 14:12:02
原创
183 人浏览过

How to Get the Start and End Offsets of a Selection within its Parent Container?

获取范围相对于其父容器的开始和结束偏移

在 HTML 文档中,用户选择可以扩展到不同的元素和文本节点。确定所选内容的父容器内字符的确切范围可能具有挑战性。但是,无论浏览器如何变化,我们都可以利用各种技术来实现这一目标。

一种方法涉及克隆选择范围并将其端点设置为父容器的起点和终点。通过将结果文本内容与原始选择范围进行比较,我们可以计算相对于父级的开始和结束偏移量。下面是 JavaScript 中的示例:

function getSelectionCharacterOffsetWithin(element) {
  var start = 0;
  var end = 0;
  var preCaretRange = range.cloneRange();
  preCaretRange.selectNodeContents(element);
  preCaretRange.setEnd(range.startContainer, range.startOffset);
  start = preCaretRange.toString().length;
  preCaretRange.setEnd(range.endContainer, range.endOffset);
  end = preCaretRange.toString().length;
  return { start: start, end: end };
}
登录后复制

此方法提供父容器内的开始和结束偏移量,考虑 HTML 标签和文本节点遍历。它可用于需要精确字符偏移的各种应用程序,例如文本编辑工具和内容操作脚本。

以上是如何获取所选内容在其父容器中的开始和结束偏移量?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板