2015-09-22 3 views
1

Как добавить еще один параметр в контекстное меню, которое отображается щелчком правой кнопки мыши по расширению значка?расширение Google Chrome, добавьте вкладку в контекстное меню

Я стараюсь это:

function addMenu(title) { 
    chrome.contextMenus.create({ 
     title: title, 
     contexts: ["all"], 
     onclick: function() { console.log(1)} 
    }); 
} 

addMenu('Log out'); 

Я получаю сообщение об ошибке:

Неконтролируемый runtime.lastError во время работы contextMenus.create: Расширения с использованием страниц событий необходимо передать идентификатор параметра в chrome.contextMenus.create

У кого были такие проблемы? Вы можете помочь?

ответ

3

Как сказано в сообщении об ошибке, вы используете event page и, таким образом, должен предоставить id к chrome.contextMenus.create, чтобы использовать его в onClicked listener:

chrome.contextMenus.create({ 
    id: "some-command", 
    title: "some title", 
    contexts: ["all"] 
}); 

chrome.contextMenus.onClicked.addListener(function(info, tab) { 
    if (info.menuItemId == "some-command") { 
     console.log("yay!"); 
    } 
}); 

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

+0

хорошее описание, спасибо woxxom. – shuboy2014