Я пишу расширение Chrome. Это расширение должно добавлять элементы в контекстные меню Chrome, если выделен текст. Это должно происходить динамически каждый раз, когда открывается контекстное меню.
Как на этом изображении:
Проблема:
Я не могу найти событие, которое запускается (и работает), если открывается контекстное меню. Следующий пример кода не работает.
window.addEventListener('contextmenu', function(){
DynamicMenu.generateMenu(window.getSelection());
});
Также невозможно инициировать добавление динамических элементов из «тестового» элемента:
chrome.contextMenus.create(
{
"title": "test",
"contexts" :["selection"],
"onclick" : DynamicMenu.generateMenu
});
Спасибо за вашу помощь!
Обновление (как это теперь работает):
Manifest:
...
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["document_event.js"],
"run_at" : "document_idle"
}
],
...
document_event.js:
window.addEventListener('mousedown', function(e) {
var rightclick;
if (!e) var e = window.event;
if (e.which) rightclick = (e.which == 3);
else if (e.button) rightclick = (e.button == 2);
if(rightclick){
var searchText = window.getSelection().toString();
chrome.extension.sendRequest({search: searchText}, function(response) {
...
});
}
});
content.js
...
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
var a = request.search;
...
sendResponse({});
});
...