www whatwg what spec language español 3wc javascript google-chrome-extension

javascript - spec - whatwg español



¿Por qué es chrome.browserAction.onClicked undefined? (4)

Para aquellos que ya han agregado algo como

"background": { "scripts": ["background.js"] }

y aún se Cannot read property ''onClicked'' of undefined se Cannot read property ''onClicked'' of undefined - simplemente agregue

"browser_action": {}

en tu manifest.json

edit: gracias @Pacerier por su comentario, he cambiado mi respuesta

Estoy escribiendo una extensión de Chrome que me redirigirá a una URL al hacer clic en el icono de acción del navegador.

Estoy tratando de usar:

chrome.browserAction.onClicked.addListener

pero me sale

No se detectó TypeError: no se puede leer la propiedad ''onClicked'' de undefined

Este es mi archivo de manifiesto:

{ "name": "first extension", "version": "2.2.12", "description": "redirct to a link icon", "browser_action": { "default_icon": "icontest.png", "default_title": "Do action" }, "permissions": ["tabs", "http://*/*"], "content_scripts": [{ "matches": ["http://*.twitter.com/*", "https://*.twitter.com/*"], "js": ["twterland.js"] }], "icons": { "16": "icontest.png", "48": "icontest.png", "128": "icontest.png" } }

Este es mi archivo js:

chrome.browserAction.onClicked.addListener(function(tab) { alert("hi"); });


Parece que el código está en su archivo twterland.js , que es su script de contenido. browserAction solo puede usarse en páginas de extensión, por lo que no puede usarlo en los scripts de contenido.

Documento: https://developer.chrome.com/extensions/content_scripts

Sin embargo, los scripts de contenido tienen algunas limitaciones. Ellos no pueden
- Use chrome. * APIs (excepto las partes de chrome.extension)
- Utilizar variables o funciones definidas por las páginas de su extensión.
- Usar variables o funciones definidas por páginas web o por otros scripts de contenido.

Ponlo en la página de fondo en su lugar.


Si no tiene una propiedad "browser_action" definida en su manifest.json , este error puede ocurrir. La respuesta de @Kirill funciona, pero también debe agregar un icon.png en icon.png archivo o chrome arrojará un error que no puede encontrar ese archivo.

Agregar esto al archivo manifest.json debería suprimir esto es un error:

"browser_action": {}

Asegúrese de leer la documentación para obtener más información sobre cómo usar la "browser_action" .


También estaba recibiendo esto, añadiendo

"persistent": true

a mi declaración de antecedentes en manifest.json lo resolvió.