Я пытаюсь динамически создавать пункты контекстного меню в расширении Chrome; это включает в себя отправку запроса в основной процесс расширения для изменения меню и блокирование отображения меню до отправки ответа. Я экспериментировал с разными решениями весь день, и мне еще предстоит найти решение, которое работает. Например,
node.oncontextmenu = initContext({...});
initContext = function(menuParams) {
return function(event) {
if (event.showContext) // Menu has been created and is ready for display
return true;
event.preventDefault(); // Block original menu event
chrome.extension.sendRequest(menuParams, function() { // Send request to modify menu,
event.showContext = true; // generate new event when menu is ready
event.target.dispatchEvent(event);
});
};
};
Меню заблокировано с помощью protectDefault (), и функция обратного вызова chrome.extension.sendRequest () выполняется, когда меню готово к отображению. С этим решением (и всеми другими, которые я пробовал), меню никогда не отображается. Буду признателен за любую помощь.