有没有办法创建从另一个站点加载源的SharedWorker?

时间:2011-06-13 15:45:04

标签: javascript web-worker

假设我的html文件来自http://foo.com/index.html,其中<script>标记为http://bar.com/bar.js。在bar.js中,我想启动一个其中网址为http://bar.com/worker.js的SharedWorker。有没有办法实现这个(可能像jsonp)?

2 个答案:

答案 0 :(得分:0)

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

Cross-Origin Resource Sharing

但是,如果您不在bar.com上控制该网站,这可能不适合您。如果你这样做,那么CORS绝对是一个不错的选择,但如果bar.com由另一方运营,你可能需要求助于JSONP,因为CORS依赖于网站发回特定的标题,授权你的浏览器下载你请求的资源。

答案 1 :(得分:0)

这是我找到的解决方案:

  • 将脚本写入函数内(可以是内部函数)
  • 使用function.toString()获取文本(删除函数声明和右括号)
  • 将文本附加到BlobBuilder并获取blob
  • 使用window.URL.createObjectURL将blob转换为网址
  • 使用该工作人员的网址