¿Por qué Chrome no permite que Web Workers se ejecute en JavaScript?

Si trato de usar web workers a través de un archivo JavaScript, Chrome arroja un error:

Uncaught SecurityError: no se pudo crear un worker: no se puede acceder al script en ‘(path) /worker.js’ desde el origen ‘null’.

Pero les permite si usamos directamente a través del HTML.

La respuesta de Chrome no puede cargar al trabajador web. Chrome no permite cargar trabajadores web al ejecutar scripts desde un archivo local.

¿Por qué Chrome no permite que los trabajadores web se ejecuten localmente?

Web Workers funcionan completamente bien en Firefox, Safari y en Edge

Esta pregunta ya fue hecha. Los trabajadores deberían trabajar en archivos HTML abiertos desde el disco siempre que use la ruta relativa . Sin embargo, si Chrome implementa esto correctamente ha sido disputado.

Te aconsejo que intentes utilizar la ruta relativa en tus scripts:

 new Worker("./scripts/worker.js"); 

Si eso no funciona, consulte esta solución alternativa: https://stackoverflow.com/a/33432215/607407

Específicamente, cargue al trabajador como una función, luego convierta la función a cadena:

 function worker_function() { // all worker code here } var worker = new Worker(URL.createObjectURL(new Blob(["("+worker_function.toString()+")()"], {type: 'text/javascript'})));