Javascript 我可以从绝对URL加载web worker脚本吗?

Javascript 我可以从绝对URL加载web worker脚本吗?,javascript,firefox,multithreading,Javascript,Firefox,Multithreading,我一直没能让这样的东西起作用: var myWorker = new Worker("http://example.com/js/worker.js"); 在Firebug控制台中,我遇到如下错误: 无法加载脚本: (nsresult=0x805303f4) 我看到的每个web worker使用示例都从相对路径加载脚本。我试过这样的方法,效果很好: var myWorker = new Worker("worker.js"); 但是,如果我需要加载一个不在相对位置的工作脚本,该怎么办?我已经

我一直没能让这样的东西起作用:

var myWorker = new Worker("http://example.com/js/worker.js");
在Firebug控制台中,我遇到如下错误:

无法加载脚本: (nsresult=0x805303f4)

我看到的每个web worker使用示例都从相对路径加载脚本。我试过这样的方法,效果很好:

var myWorker = new Worker("worker.js");
但是,如果我需要加载一个不在相对位置的工作脚本,该怎么办?我已经在谷歌上搜索了很多次,但我还没有看到这个问题在任何地方得到解决


我应该补充一点,我正试图在Firefox 3.5中做到这一点。

对于那些不知道的人,这里是Web Worker的规范:

以及John Resig的帖子:

Javascript通常不能访问Javascript文件来源的url之外的任何内容

我相信这就是规范的这一部分的含义,来自:

4.2工作人员的基本URL和来源

worker中运行的脚本的源和有效脚本源都是worker的location属性表示的绝对URL的源

这篇文章有一个关于在你的情况下应该抛出什么错误的声明:

根据,工作程序必须托管在与相同的域中,即创建工作程序的脚本。第一个脚本的URL就是工作URL解析的依据。

更不用说

几乎在任何时候,只要您有跨源限制策略,就不会对文件系统产生任何影响(file://path/to/file.ext)-这意味着,文件协议会触发此策略的处理

这也适用于画布API中的“脏图像”


希望这有帮助=]

您好,您能详细介绍一下工人阶级吗?这不是只在FF3.5中工作还是在所有浏览器中工作?这里是关于Worker类的Mozilla官方文档:Firefox是我唯一关心的浏览器。我最终想在我正在编写的Greasemonkey脚本中使用WebWorkers,“起源”的含义有点不清楚。如果您查看WHATWG文档,其中讨论了“来源”,这里有一条注释:“因此,脚本必须是与原始页面具有相同方案的外部文件:您不能从data:URL或javascript:URL加载脚本,https:page不能启动使用http:URL脚本的工作程序。”在第3点下查看:我发现关于丢失错误消息的帖子很有趣,因为这个原因,正如你所说的,它确实比我希望在规范中看到的更加模糊。我认为javascript安全模型将是问题所在,但是,考虑到有办法解决这个问题,您可以尝试从其他url加载javascript文件,然后查看web worker是否从绝对url工作。“…您可以尝试从其他url加载javascript文件,然后查看web worker是否从绝对url工作。”您能详细说明一下吗?我不明白你在说什么样的解决办法。@mattblodgett-我还没有尝试过,但你可以看看这是否有帮助:为了澄清,你得到的错误是NS_error_DOM_BAD_URI:为了确保你没有原产地问题,确保您没有从两个不同的域加载脚本。您确定“第一个脚本”仍然代表当前规范吗?