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ó.