Ich schreibe eine Chrome-Erweiterung. Diese Erweiterung soll Elemente zum Chrome-Kontextmenü hinzufügen, wenn ein Text ausgewählt wird. Dies soll jedes Mal dynamisch geschehen, wenn das Kontextmenü geöffnet wird.
Wie auf diesem Bild:
Das Problem:
Ich kann kein Ereignis finden, das beim Öffnen des Kontextmenüs ausgelöst wird (und funktioniert). Das folgende Codebeispiel funktioniert nicht.
window.addEventListener('contextmenu', function(){ DynamicMenu.generateMenu(window.getSelection()); });
Es ist auch nicht möglich, das Hinzufügen von dynamischen Posten vom "Test"-Posten aus anzustoßen:
chrome.contextMenus.create( { "title": "test", "contexts" :["selection"], "onclick" : DynamicMenu.generateMenu });
Vielen Dank für Ihre Hilfe!
Update (wie es jetzt funktioniert):
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({});
});
...