gratis depurar debugger como chrome breakpoint activar javascript google-chrome web-worker

debugger - depurar javascript chrome



Chrome no puede cargar el trabajador web (12)

Chrome no permite cargar trabajadores web al ejecutar scripts desde un archivo local.

Estoy trabajando en un proyecto que utiliza un trabajador web.

En mi sección principal, tengo este código:

var worker = new Worker("worker.js"); // More code

Esto funciona bien en Safari, pero Chrome informa del siguiente error:

Uncaught SecurityError: Failed to create a worker: script at ''(path)/worker.js'' cannot be accessed from origin ''null''.

¿Por qué funciona esto perfectamente en Safari pero no en Chrome? ¿Cómo puedo solucionar esto?

Gracias.


Con Python 2.x siendo más ampliamente implementado que Python 3.x, algo similar a python -m SimpleHTTPServer 8000 es más aplicable en general, y no solo para Mac OS X. Encontré necesario su uso bajo Cygwin, por ejemplo.

Con eso en su lugar, este ejemplo funcionó como un campeón.


El problema ha sido explicado adecuadamente por Noble Chicken, pero tengo una solución más general para él. En lugar de instalar wamp o xamp, con python puede navegar hasta la carpeta en la que está alojado el proyecto y escribir: python -m http.server

Solo eso y tendrá un servidor en ejecución en esa carpeta, accesible desde localhost.


Es por las restricciones de seguridad. Necesita usar el protocolo http:// o https:// lugar del file:/// .

Si tiene NodeJS instalado, simplemente puede hacer lo siguiente. - Tenga en cuenta que esta es una de las muchas opciones disponibles

Instalar local-web-server

$ npm install -g local-web-server

Ahora puede usarlo en cualquier carpeta a la que desee acceder mediante http .

$ ws

Navegue a http://localhost:8000 (puerto predeterminado: 8000)



Probablemente, una razón es que Chrome no permite cargar trabajadores web al ejecutar scripts desde un archivo local. Y trato de ejecutar el código en mi Firefox, tampoco puedo.


Sí, no funcionará en chorome si está cargando un archivo local. Pero funcionará bien en el navegador Firefox. Y debe agregar el código siguiente en el archivo HTML.

<head> <meta charset="UTF-8" /> </head>


También puede usar el indicador --allow-file-access-from-files cuando ejecuta Chrome.

Ejemplo para MacOsX:

/Applications/Google/ Chrome.app/Contents/MacOS/Google/ Chrome --allow-file-access-from-files

Más información: configuración del trabajador web para Chrome


Tuve el mismo problema que tu publicación también. La solución es que debe ejecutarlo con localhost (wamp o xamp). Lo hará.


Yo uso una solución alternativa. Chrome bloquea Worker pero no <script> . Por lo tanto, la mejor manera de hacer una solución universal es esta:

function worker_function() { // all code here } // This is in case of normal worker start // "window" is not defined in web worker // so if you load this file directly using `new Worker` // the worker code will still execute properly if(window!=self) worker_function();

A continuación, lo vincula como normalmente <script src="..." . Y una vez que se define la función, usas esta abominación de un código:

new Worker(URL.createObjectURL(new Blob(["("+worker_function.toString()+")()"], {type: ''text/javascript''})));


necesita un servidor web para solicitarlo desde el protocolo HTTP En lugar de un archivo local y funciona correctamente :)


Chrome carga el archivo pero no puede ejecutarlo. Usa Firefox Está funcionando para mí.