使用右键单击选择更新上下文菜单

时间:2016-03-18 13:33:26

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

我有一些代码在选择时更新上下文菜单。我的内容代码是:

document.addEventListener('selectionchange', function() {
    var selection = window.getSelection().toString().trim();
    chrome.runtime.sendMessage({
        request: 'selectionChanged',
        selection: selection
    });
});

并且后台代码捕获消息并更新上下文菜单。

如果我通过使用鼠标左键选择文本(拖动以突出显示,双击等)然后调出上下文菜单,但是如果我右键单击不是的单词,则无法正常工作已经突出显示从我可以看出的问题是,在处理选择更改消息和更新菜单之前,将启动上下文菜单。

如何在显示菜单之前使用右键单击选择更新上下文菜单?

1 个答案:

答案 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