我有一些代码在选择时更新上下文菜单。我的内容代码是:
document.addEventListener('selectionchange', function() {
var selection = window.getSelection().toString().trim();
chrome.runtime.sendMessage({
request: 'selectionChanged',
selection: selection
});
});
并且后台代码捕获消息并更新上下文菜单。
如果我通过使用鼠标左键选择文本(拖动以突出显示,双击等)然后调出上下文菜单,但是如果我右键单击不是的单词,则无法正常工作已经突出显示从我可以看出的问题是,在处理选择更改消息和更新菜单之前,将启动上下文菜单。
如何在显示菜单之前使用右键单击选择更新上下文菜单?
答案 0 :(得分:0)
只需运行一个间隔,然后使用window.getSelection().toString().trim()
检查选择中的更改。
这是我的意思的一个粗略的例子:
var selection="";
setInterval(function(){
if(selection!=window.getSelection().toString().trim()){
selection=window.getSelection().toString().trim();
chrome.runtime.sendMessage({
request: 'selectionChanged',
selection: selection
});
}
},500);
你可以选择做这个家伙的建议: Javascript: How to detect if a word is highlighted