Nunca antes hice una extensión de Chrome. Estoy confundido acerca de los trabajadores de servicio. Todo lo que quiero hacer es ejecutar JavaScript que manipule el DOM cuando un usuario haga clic en el ícono de la extensión. Tengo mi secuencia de comandos background.js identificada como un trabajador de servicio.
"background": { "service_worker": "./background.js" },Lo que no entiendo (después de ver un montón de videos de Youtube) es cómo debe estructurarse mi archivo background.js. Solo quiero que cargue mi archivo content.js. Tengo algunos ejemplos simulados a continuación para dar una idea.
chrome.tabs.[some api event]((tabId, changeInfo, tab) => { if (changeInfo.status === 'complete') { chrome.scripting.executeScript({ target: { tabId: tabId }, files: ["./content.js" }) } });No tengo idea de qué hacer en el archivo del trabajador del servicio. ¿Simplemente registro el trabajador del servicio y luego ejecuto mi archivo content.js? ¿Ni siquiera está seguro de qué evento sería el correcto para usar en la API para ejecutar mi content.js? Cualquier aporte o enlace a páginas que me ayuden a entender esto mejor sería muy apreciado.
Necesita la API chrome.action y su evento onClicked + executeScript, no chrome.tabs.
manifiesto.json:
"action": {"default_title": "Click me"}, "background": {"service_worker": "background.js"}, "permissions": ["scripting", "activeTab"],background.js (registrado automáticamente, no es necesario hacerlo explícitamente).
chrome.action.onClicked.addListener(tab => { chrome.scripting.executeScript({ target: {tabId: tab.id}, files: ['content.js'], }); });contenido.js:
// here you can access the web page DOM console.log('Yay');