Actualmente estoy trabajando en mi propia extensión de Firefox y me encontré con el problema de agregar un oyente a un evento onclick para un elemento del menú contextual.
manifiesto.json
{ "manifest_version": 2, "name": "My extension name", "version": "1.0", "description": "My extension description", "icons": { "48": "icons/icon.png" }, "permissions": ["menus"], "background": { "scripts": ["index.js"] } }índice.js
browser.menus.create({ id: 'my-ext-item', title: 'Custom ctx item', contexts: ['selection'] }); browser.menus.onClicked.addListener(function(info, tab) { console.log("Clicked!"); }); browser.menus.create() aparentemente funciona bien, porque el nuevo elemento aparece en mi menú contextual. El problema es capturar un evento de clic: nunca se dispara.
Escribí el código anterior de acuerdo con MDN Web Docs . Lo pruebo en Firefox 97.0.1 x64 .
¿Qué hice mal y qué debo reparar?
PD. Estaba intentando con browser.contextMenus.create y browser.contextMenus.onClicked.addListener más antiguos, pero tampoco funcionó.
Encontré una solución: browser.menus.onClicked.addListener() funciona correctamente, solo es necesario habilitar el inicio de sesión en la configuración del navegador.
Primero, vaya a about:config y busque key extensions.logging.enabled y cámbielo a true . Luego, muestre la Consola del navegador desde Menu Bar -> Tools -> Browser Tools -> Browser Console del navegador o mediante el atajo Ctrl+Shift+J .
¡Tenga en cuenta que Browser Console no es lo mismo que Firefox Developer Tools (desde F12 o Ctrl+Shift+I)!
Por último, pero no menos importante, habilite Show Content Messages en la consola del navegador