是否有一种方法可以创建从另一个站点加载源的SharedWorker

is there a way to create SharedWorker that loads the source from another site?

本文关键字:另一个 创建 站点 加载 SharedWorker 方法 一种 是否      更新时间:2023-09-26

假设我的html文件来自http://foo.com/index.html,其中有一个<script>标记http://bar.com/bar.js.在bar.js中,我想在url所在的位置启动一个SharedWorkerhttp://bar.com/worker.js.有没有一种方法可以实现这一点(也许像jsonp一样)?

目前进行这种跨域访问的首选方法是使用W3 CORS规范。

跨来源资源共享

然而,如果你不控制bar.com上的网站,这可能不适合你。如果你控制了,那么CORS绝对是一个不错的选择,但如果bar.com由另一方运行,你可能需要求助于JSONP,因为CORS取决于网站发送特定的头,授权你的浏览器下载你请求的资源。

这是我找到的一个解决方案:

  • 在函数内编写脚本(可以是内部函数)
  • 使用函数.toString()获取文本(删除函数声明和大括号)
  • 将文本附加到blob生成器并获取blob
  • 使用窗口。URL.createObjectURL将blob转换为URL
  • 将该url用于工作者