ventana emergente en el menú contextual de las extensiones de Chrome

Estoy desarrollando una extensión de Chrome y tengo un problema. Agregué 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í:

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 después de actualizar la extensión en las preferencias de la extensión de Chrome.

Gracias de antemano!

preguntado el 31 de julio de 12 a las 15:07

Ladrar. Estoy usando la versión 2. Pero, ¿cómo puedo hacer eso de otra manera? No estoy muy educado en javascript. -

@chaohuang No hay un controlador de eventos en línea en el código de OP. -

1 Respuestas

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

invoca el popup inmediatamente, haciendo que se abra una ventana emergente. Tienes que pasar una referencia a una función. Para que su código funcione, 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.

Respondido 31 Jul 12, 16:07

Agregué su código a main.js en la extensión de Chrome, pero no veo ningún elemento nuevo en el menú contextual de la página del navegador. ¿Qué me estoy perdiendo? - alimentado

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.