Soy nuevo en esto.
Tengo un requisito, que debería abrir una nueva pestaña al hacer clic en el icono de la barra de herramientas.
Mi archivo de manifiesto:
{ "name": "App", "description": "App", "version": "1.0", "manifest_version": 3, "icons": { "16": "icon16.png", "48": "icon48.png", "128": "icon128.png" }, "commands": { "_execute_browser_action": { "suggested_key": { "default": "Ctrl+Shift+Y" } } }, "background": { "service_worker": "background.js" }, "action": {}, "web_accessible_resources": [ { "resources": ["static/*"], "matches": ["<all_urls>"] } ], "permissions": ["activeTab", "tabs", "background"], "content_security_policy": { "extension_pages": "script-src 'self'; object-src 'self'" } } Y mi archivo background.js
chrome.action.onClicked.addListener(function (tab) { chrome.tabs.create({ url: chrome.runtime.getURL("index.html"), active: true, }); });Actualmente, este código abre una nueva pestaña solo una vez, y luego el trabajador del servicio se vuelve inactivo. Después de recargar la extensión solo puedo abrir la nueva pestaña. ¿Existe alguna solucion para esto?
Puedo arreglar esto degradando a la versión 2 del manifiesto.
Mi archivo manifest.json :
{ "name": "App", "description": "App", "version": "1.0", "manifest_version": 2, "icons": { "16": "icon.png", "48": "icon.png", "128": "icon.png" }, "commands": { "_execute_browser_action": { "suggested_key": { "default": "Ctrl+Shift+Y" } } }, "background": { "scripts": ["background.js"], "persistent": false }, "browser_action": {}, "web_accessible_resources": ["static/*"], "permissions": ["https://*/*", "http://*/*"], "content_security_policy": "script-src 'self'; object-src 'self'" } Y mi archivo background.js se ve así:
chrome.browserAction.onClicked.addListener(function (tab) { chrome.tabs.create({ url: chrome.extension.getURL("index.html"), selected: true, }); });Me referí al código fuente de daily.dev y arreglé el error.