如何从子域提供的脚本创建Web Worker?

时间:2012-10-28 18:16:45

标签: javascript web-worker

我在example.com有一个网站,我正在为cdn.example.com的所有外部资源提供服务。所以在example.com的HTML页面中,我有类似的内容:

<script type="text/javascript" src="http://cdn.example.com/script.js"></script>

在我的脚本中,我想创建一个Web Worker,所以我这样做:

worker = new Worker("http://cdn.example.com/script.js");

但是在导致Failed to load script: http://cdn.example.com/script.js (nsresult = 0x805303f4)错误的Firefox 16上失败了。它适用于Safari 6和Chrome 22。

似乎问题是因为origins differ。脚本的有效来源为example.comcdn.example.com与此不匹配。这似乎是一个错误,因为没有CORS没有设置document.domain有帮助(或者至少我不能通过玩它来使它工作)。有没有办法让它发挥作用?

1 个答案:

答案 0 :(得分:2)

最后,我在example.com创建了一个网站,提供了一个简单的JavaScript代码,其中包含真实的网络代码:

importScripts('http://cdn.example.com/script.js');

然后通过指向它来创建Web worker。