7

Estoy desarrollando una extensión de Chrome y tengo un problema. He agregado un elemento al menú contextual de Chrome y quiero abrir una ventana emergente si se hace clic en el elemento del menú. Mi código se ve así:ventana emergente en el menú contextual de las extensiones de cromo

function popup(url) { 
window.open(url, "window", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes"); 
} 

chrome.contextMenus.create({"title": "Tumblr", "contexts":["page","selection","link","editable","image","video","audio"], "onclick": popup('http://example.com')}); 

Pero este código no funciona como yo quiero. La ventana emergente no aparece después de hacer clic en el elemento de contexto, sino más bien después de una actualización de la extensión en las preferencias de extensión de Chrome.

¡Gracias de antemano!

+0

Yap. Estoy usando la versión 2. Pero, ¿cómo puedo hacer eso? No estoy muy entrenado en javascript. –

+0

@chaohuang No hay controlador de eventos en línea en el código OPs. –

Respuesta

5
chrome.contextMenus.create({... "onclick": popup('http://example.com')}) 

invoca la función popup inmediatamente, causando una ventana emergente que se abre. Tienes que pasar una referencia a una función. Para obtener su código para trabajar, envuelva la llamada de función en una función:

chrome.contextMenus.create({ 
    "title": "Tumblr", 
    "contexts": ["page", "selection", "link", "editable", "image", "video", "audio"], 
    "onclick": function() { 
     popup('http://example.com'); 
    } 
}); 

window.open() se puede utilizar para crear una ventana emergente. Un método alternativo (solo para hacerle saber que existe) es chrome.windows.create.

+0

¡Genial! Funciona perfectamente ¡Muchas gracias! –

Cuestiones relacionadas