替换网页上的特定单词(只有一个单词实例,而不是所有单词实例)

时间:2016-06-24 22:45:47

标签: javascript google-chrome google-chrome-extension

我正在编写Chrome扩展程序,该扩展程序使用所选文本上下文菜单单击处理程序来替换所选文本。基本上是换字。

上下文菜单处理程序接收所选文本,但不接收其元素或HTML。意思是我无法访问用户点击的文本的特定实例,但我知道它是什么。

我可以在整个页面中搜索所选文字,但是网页上的文字经常会出现多次,而且我只想替换其中一个单词实例

例如,

<div id="One">
  This is a text
</div>
<div id="Two">
  This is another text
</div>

我需要区分单词&#34; Text&#34;在div上选择一个并在单词&#34; Text&#34;选择div二。

有办法吗?

(下一个问题当然是区分同一个元素中的相同单词,但我不确定是否可能)

1 个答案:

答案 0 :(得分:0)

我最终使用了window.getSelection(),如此:

var selectedNode = $(window.getSelection().focusNode);
var textToReplace = window.getSelection().toString();

var replaced = selectedNode.html().replace(textToReplace, newText);
selectedNode.html(replaced);

我需要在每次点击时获得选择,因此我在点击事件上注册:

$(document).ready(function() { 
    $(document).click(function clicked(event) {
        RefreshSelection();
    });
});