我们可以在getSelection方法Javascript中传递数据吗?

问题描述

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

解决方法

就我试图了解您的问题而言,您的网页上有一些文字(与文字的来源无关),您正在使用鼠标选择部分文字,并尝试获得唯一的起始和结束索引选定的文本,这样以后您就可以接触到选定的文本。

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,而不是<h1>中的内容