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

发布于 2024-11-15 08:18:44 字数 360 浏览 3 评论 0原文

假设我的html文件来自http://foo.com/index.html,其中有一个

Say my html file is from http://foo.com/index.html, in it, there's a <script> tag to http://bar.com/bar.js. In bar.js, I want to start a SharedWorker where the url is http://bar.com/worker.js. Is there a way to achieve this (maybe something like jsonp)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

若水微香 2024-11-22 08:18:44

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

跨域资源共享

但是,如果您无法控制网站 bar.com。如果您这样做,那么 CORS 绝对是一个不错的选择,但如果 bar.com 由另一方运行,您可能需要诉诸 JSONP,因为 CORS 取决于网站发送回特定标头,授权您的浏览器下载您请求的资源。

The preferred way to do this sort of cross-domain access these days is using the W3 CORS specification.

Cross-Origin Resource Sharing

However, this might not be suitable for you if you do not control the the site at bar.com. If you do, then CORS is definitely a good option, but you may need to resort to JSONP if bar.com is run by another party, since CORS depends on the site sending back specific headers authorizing your browser to download the resource you requested.

几度春秋 2024-11-22 08:18:44

这是我找到的解决方案:

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

This is a solution I found:

  • Write the script inside a function (can be an inner function)
  • get the text using function.toString() (removing the function declaration and closing brace)
  • append the text to a BlobBuilder and get the blob
  • Use window.URL.createObjectURL to convert the blob to a url
  • use that url for the worker
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文