pasar el elemento dom del script de fondo a chrome.tabs.executeScript
Estoy tratando de pasar el elemento dom activo cuando se hace clic en el menú contextual de mi script de fondo a un script al que se llama a través de chrome.tabs.executeScript. Puedo pasar booleanos y cadenas muy bien, pero siempre recibo un error cuando paso elementos dom. Estoy empezando a pensar que no es posible.
//doScripts function called from browser action
chrome.browserAction.onClicked.addListener(function(tab) {
doScripts(true, null);
});
//doScripts function called from context menu click
function getClickHandler(info, tab) {
var currTarg = document.activeElement;
console.log("currTarg = " + currTarg);
doScripts(false, currTarg);
}
//i reference doingBrowserAction and contextTarg in myscript.js
function doScripts(context, targ){
chrome.tabs.executeScript(null, {code: "var doingBrowserAction = "+context+"; var contextTarg = "+targ+";"}, function(){
chrome.tabs.executeScript(null, {file: "js/myscript.js"}, function(){
//all injected
});
});
}
//setup context menu
chrome.contextMenus.create({
"title" : "DESTROY!",
"type" : "normal",
"contexts" : ["page","selection","link","editable","image","video","audio"],
"onclick" : getClickHandler
});
Hago referencia a doingBrowserAction y contextTarg en myscript.js. Sé que lo que estoy tratando de hacer es posible porque la extensión de adblock lo hace, pero me cuesta entender cómo. gracias por adelantado.