【问题标题】:Can we pass out Data in getSelection method Javascript?我们可以在 getSelection 方法 Javascript 中传递数据吗?
【发布时间】:2020-10-01 04:20:29
【问题描述】:

如何找到所选文本的开始和结束索引?我正在使用 getSelection() 但问题是我正在从数据库中获取数据,并且在该数据上,我想找到不是来自 DOM 的开始和结束索引,并且 getSelection() 锚偏移和焦点偏移考虑 DOM 来选择索引。那该怎么做呢?

【问题讨论】:

  • 首先,如果您在 javascript 中执行任何操作,无论它来自数据库、静态 HTML 文件还是从某个脚本生成的输出文本(如果它被发送到浏览器)都无关紧要它已经是 DOM 的一部分了。

标签: selection


【解决方案1】:

就我试图了解您的问题而言,您的网页上有一些文字(无论它来自哪里),您正在使用鼠标选择其中的一部分并尝试获得唯一的开始和结束索引为选定的文本,以便您以后可以联系到选定的文本。

function getSelectedTextIndex(){
    let selectedText = getSelection().toString();
    let paragraph = getSelection().anchorNode.data;
    let starting_index = paragraph.indexOf(selectedText);
    let end_index = starting_index + selectedText.length;
    console.log('Starting index : ', starting_index);
    console.log('End index : ', end_index);
}

请注意,此函数将打印所选文本相对于锚节点内容的唯一索引

例如,你有一个像下面这样的 DOM

<div>
    <h1>Lorem Ipsum</h1>
    <h2>dollar sit amet</h2>
</div>

你选择美元并运行这个函数然后它应该打印 0,7 因为 anchorNode 将选择 h2 作为 anchorNode 而不是 &lt;h1&gt; 中的内容

【讨论】:

  • 这很重要先生,因为索引与原始数据不匹配。 getSelection 从 DOM 获取数据,我必须从原始数据中找到索引。当我打印两个数据时,两个数据之间存在很大差异。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 2015-12-29
相关资源
最近更新 更多