Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

220
Vistas
Imposible llamar a un trabajador desde un archivo JS inyectado a través de una extensión de Chrome

Desarrollé una extensión web de Chrome, donde inyecto un .js en un sitio web para automatizar alguna tarea. Y funciona bien. Pero, cada vez que pongo esa pestaña en segundo plano, ¡no lo hace! (Se retrasa/omite setTimeout())

Entonces, después de buscar un poco en Google, escuché que era un "comportamiento normal e intencionado" y las personas sugirieron usar Web Workers. Pero ahora, cuando intento inyectar un trabajador web, el sitio me dice que es imposible debido a las directivas de CSP.

aquí hay un código de muestra:

injecter.js (que funciona bien)

 if(nbrTabs > 0){ chrome.tabs.executeScript(tabs[0].id, {file: "worker.js"}); chrome.tabs.executeScript(tabs[0].id, {file: "utilities.js"}); DisableStart(); EnableStop(); save(); }

trabajador.js

 function main(){ setTimeout(function(){ console.log("Do the things ..."); buttonOnThePage.click(); }, 1000); return null; } onmessage = function(e){ console.log("Worker Start\n"); main(); postMessage("Worker End"); }

utilidades.js

 var worker = new Worker("./worker.js"); worker.onmessage = function(e) { worker.terminate(); }; worker.postMessage('Start');

Cuando los uso, aparece un error en la consola que dice

 GET https://www.example.com/bar/utilities.js 404

Entonces, supongo que no funciona. Entonces, probé una segunda cosa, donde tengo mi trabajador Y mi 'hilo' principal en el mismo archivo, lo que resulta en:

utilidades.js

 var string = ` function main(){ setTimeout(function(){ console.log("Do the things ..."); buttonOnThePage.click(); }, 1000); return null; } onmessage = function(e){ console.log("Worker Start\n"); main(); postMessage("Worker End"); }`; var blob = new Blob([string], {type: 'application/javascript'}); var worker = new Worker(URL.createObjectURL(blob)); worker.onmessage = function(e) { worker.terminate(); }; worker.postMessage('Start');

Pero ahora, tengo un error que me dice "Error al construir 'Trabajador': el acceso al script en 'blob: https://www.example.com/some-rando-strings' está denegado por la Política de seguridad de contenido del documento. "

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda