Расширение Chrome не работает первые несколько раз - PullRequest
0 голосов
/ 31 июля 2011

Я только что построил расширение 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});
    });
}
});

Всякий раз, когда расширение запускается в первый раз либо во вновь открытом браузере, либо когда расширение установлено (и веб-страницы обновляются), меню не создается. затем вперед.

Что мне делать? Что может быть причиной этого?

1 Ответ

0 голосов
/ 01 августа 2011

Это происходит потому, что контекстное меню появляется до того, как фоновая страница может изменить содержимое этого контекстного меню. При втором щелчке правой кнопкой мыши фоновая страница уже изменила содержимое при первом нажатии, поэтому она работает во второй раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...