Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数据URI创建工作进程_Javascript_Worker - Fatal编程技术网

Javascript 从数据URI创建工作进程

Javascript 从数据URI创建工作进程,javascript,worker,Javascript,Worker,我有一个非常简单的需求,我需要用一个小的数据uri脚本生成一个webworker: new Worker('data:,console.log("HI")'); 在Firefox中,这给了我一个错误。错误是: SecurityError: Failed to load worker script at "data:,console.log("HI")" 是否有办法让worker使用数据URI?您完全可以尝试以下哪种方法: 使用function.prototype.toString 从传递

我有一个非常简单的需求,我需要用一个小的数据uri脚本生成一个webworker:

new Worker('data:,console.log("HI")');
在Firefox中,这给了我一个错误。错误是:

 SecurityError: Failed to load worker script at "data:,console.log("HI")"
是否有办法让worker使用数据URI?

您完全可以尝试以下哪种方法:

  • 使用
    function.prototype.toString
  • 从传递的函数创建IIFE,并传入任何附加参数
  • 将函数转换为
    Blob
    ,类型为
    application/javascript
  • 使用使用
    URL.createObjectURL
    创建的数据URI实例化新工作进程

  • Worker()
    的参数是脚本URL,而不是代码。你的代码片段在Firefox49(但显然不是在Chrome)中对我来说很好(无论如何,在控制台中)。您使用的是什么版本?@iamnotmaynard感谢您的测试!我最终使用的是Blob.createObjectURL,然后用它启动worker。试试非常有趣的方法谢谢@Wildhoney,如果你能将其作为我愿意接受的解决方案发布!