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

Update Context Menu with right-click selection

本文关键字:更新 上下文 菜单 选择 单击 右键      更新时间:2023-09-26

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

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

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

如果我使用鼠标左键(拖动以突出显示、双击等)选择文本,然后调出上下文菜单,这工作正常,但如果右键单击尚未突出显示的单词,则不起作用。 据我所知,问题是在处理选择更改消息和更新菜单之前,上下文菜单被调出。

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

只需运行一个间隔并使用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:如何检测单词是否突出显示