从数据 URI 创建工作者

Create worker from data URI

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

new Worker('data:,console.log("HI")');

在 Firefox 中,这反而给我一个错误。错误是:

 SecurityError: Failed to load worker script at "data:,console.log("HI")"

有没有办法让工作人员使用数据 URI?

你绝对可以试试 Freelancer 其中:

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