Estoy creando una extensión de Chrome y uso este código para abrir la ventana emergente en una nueva ventana. (Usando el manifiesto v3) De repente dejó de funcionar hoy.
TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'onClicked') Ayer funcionó bien y se corresponde con la documentación de la extensión de Chrome. ¿Alguien sabe cuál podría ser el problema?
Aquí está mi código:
chrome.action.onClicked.addListener(tab => { chrome.windows.create({ url: chrome.runtime.getURL("popup.html"), type: "popup", height: 800, width: 516 }, function(win) { }); });Gracias @woxxom . He eliminado la action del manifiesto. No me di cuenta de que es necesario para que chrome.action funcione. Fijado.
Esta pregunta ya fue respondida, pero quería publicar un ejemplo completo ya que no pude encontrar una publicación que tuviera tanto el código de extensión como el manifest.json correspondiente.
Aquí hay un ejemplo completo y válido usando Manifest V3.
// File: manifest.json // { "manifest_version": 3, "name": "My extension", "description": "Extension that extends things", "author": "Me", "version": "0.1", "content_scripts": [ { "matches": [ "https://*" ], "js": ["content.js"] } ], "icons": { "48": "icons/icon128.jpg", "128": "icons/icon512.jpg"}, "background": { "service_worker": "background.js" }, "action": {}, "permissions": [ "storage", "downloads", "tabs" ] } // File: background.js // // Called when the user clicks on the browser action. chrome.action.onClicked.addListener(tab => { // Send a message to the active tab chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { var activeTab = tabs[0]; chrome.tabs.sendMessage(activeTab.id, {"message": "clicked_browser_action"}); }); });(Obviamente, elimine el comentario del archivo .json antes de copiarlo y ajuste los permisos de su extensión de manera adecuada).
Tenga en cuenta que si está utilizando una versión de Chrome anterior a Chrome 93, su manifest.json y background.js deben estar en el MISMO directorio.