Come recuperare l’elemento in cui è stato eseguito un menu di scelta rapida

Sto cercando di scrivere un’estensione per google chrome in cui utilizzo un menu di scelta rapida. Questo menu di scelta rapida è disponibile solo su elementi modificabili (ad esempio, i testi di input). Quando si fa clic e si esegue il menu di contesto, vorrei richiamare nella funzione di callback l’elemento (il testo di input) su cui è stato eseguito il menu di contesto per aggiornare il valore associato a questo testo di input.

Ecco lo scheletro della mia estensione:

function mycallback(info, tab) { // missing part that refers to the question: // how to retrieve elt which is assumed to be // the element on which the contextMenu has been executed ? elt.value = "my new value" } var id = chrome.contextMenus.create({ "title": "Click me", "contexts": ["editable"], "onclick": mycallback }); 

I parametri associati alla funzione mycallback non contengono informazioni utili per recuperare l’elemento cliccato corretto. Sembra che questo sia un problema noto ( http://code.google.com/p/chromium/issues/detail?id=39507 ) ma non ci sono progressi da diversi mesi. Qualcuno sa una soluzione: senza jquery e / o con jquery?

È ansible inserire lo script di contenuto con listener di eventi mousedown e archivio che è stato fatto clic:

contenuto script.js

 //content script var clickedEl = null; document.addEventListener("mousedown", function(event){ //right click if(event.button == 2) { clickedEl = event.target; } }, true); chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { if(request == "getClickedEl") { sendResponse({value: clickedEl.value}); } }); 

background.js

 //background function mycallback(info, tab) { chrome.tabs.sendMessage(tab.id, "getClickedEl", function(clickedEl) { elt.value = clickedEl.value; }); }