0

我刚刚构建了一个 chrome 扩展。它使用以下内容更改上下文菜单 -

在内容脚本中

document.addEventListener("mousedown", function(event){
 if(event.button == 2) {
        if (isNaN(window.getSelection().toString())){
           chrome.extension.sendRequest({cmd: "createStringMenu"});
        }
   else {
       chrome.extension.sendRequest({cmd: "createNumberMenu"});            
    }
}

}, true);

在后台

chrome.extension.onRequest.addListener(function(request) {
if(request.cmd == "createStringMenu") {
    chrome.contextMenus.removeAll(function() {
        chrome.contextMenus.create({"title": "Send ' %s '  as SMS ", "contexts": ['selection'],"onclick": send_as_sms});
    });
} else if(request.cmd == "createNumberMenu") {
    chrome.contextMenus.removeAll(function() {
        chrome.contextMenus.create({"title": "Send SMS to %s ", "contexts": ["selection"],"onclick": send_sms_to});
    });
}
});

每当扩展程序在新打开的浏览器上或安装扩展程序(并刷新网页)第一次运行时,都不会创建菜单。然后,它确实如此。

我应该怎么办?可能是什么原因造成的?

4

1 回答 1

0

发生这种情况是因为上下文菜单出现在背景页面可以更改该上下文菜单的内容之前。第二次右键,背景页面已经在第一次按下时改变了内容,所以第二次可以正常使用。

于 2011-08-01T18:29:43.473 回答