我正在编写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二。
有办法吗?
(下一个问题当然是区分同一个元素中的相同单词,但我不确定是否可能)
答案 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();
});
});