[英]Can I load a web worker script from an absolute URL?
我無法得到這樣的東西:
var myWorker = new Worker("http://example.com/js/worker.js");
在我的Firebug控制台中,我收到如下錯誤:
無法加載腳本: http : //example.com/js/worker.js (nsresult = 0x805303f4)
我見過的每個web worker使用示例都是從相對路徑加載腳本。 我試過這樣的東西,它運作得很好:
var myWorker = new Worker("worker.js");
但是如果我需要加載不在相對位置的工作腳本呢? 我已經廣泛搜索過了,我還沒有看到這個問題在任何地方都有過。
我應該補充一點,我試圖在Firefox 3.5中這樣做。
對於那些不知道的人,這里是Web Worker的規范: http : //www.whatwg.org/specs/web-workers/current-work/
John Resig的一篇文章: http : //ejohn.org/blog/web-workers/
通常,Javascript無法訪問javascript文件來自url之外的任何內容。
我相信這是規范的這一部分,來自: http : //www.w3.org/TR/workers/
4.2基礎URL和工作者的起源
在worker中運行的腳本的原始腳本和有效腳本源都是工作者位置屬性所代表的絕對URL的起源。
這篇文章有一個聲明,說明在你的情況下應該拋出什么錯誤: http : //canvex.lazyilluminati.com/misc/cgi/issues.cgi/message/%3Cop.u0ppu4lpidj3kv@zcorpandell.linkoping.osa%3E
根據Web Worker草案規范 ,工作者必須與“第一個腳本”托管在同一個域中,即創建工作者的腳本。 第一個腳本的URL是解析工作者URL的內容。
更何況...
幾乎任何時候你都有一個跨源限制策略,文件系統沒有平衡(file://path/to/file.ext) - 意思是,文件協議觸發了這個策略的處理。
這也適用於Canvas API中的“臟圖像”。
希望這有助於=]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.