我一直在 BeSpin 上进行黑客攻击,试图让它在我的 CDN 上工作,并且通过转换为使用 JSONP,我克服了 theme.less 的 XHR 跨域请求。我遇到的下一个问题是新的 Worker(js_file),其中 js_file 位于不同的域中。
如何/可以为 Worker() 启用跨域?
我可以直接给Worker源代码吗? (即构建一个超级大的 JavaScript 文件,其中嵌入另一个文件)[这不太理想,但应该可以]。
尝试这个:
- 使用工人的代码创建一个函数
- 获取函数的字符串表示形式 (.toString),删除第一行和最后一行。现在你有了一个包含工人代码的字符串
- 创建一个新的 BlobBuilder ( window.MozBlobBuilder || window.WebKitBlobBuilder || window.BlobBuilder)
- 将工作字符串附加到它上面
- 调用 getBlob() 获取 Blob
- 使用窗口的 URL (window.URL || window.webkitURL) 使用 createObjectURL 创建对象 url
- 将该 url 用于工作人员
这是代码
function getUrlForWorker(workerFunction) {
var BlobBuilder = window.MozBlobBuilder || window.WebKitBlobBuilder || window.BlobBuilder,
URL = window.URL || window.webkitURL,
mainString = workerFunction.toString(),
bodyString = mainString.substring( mainString.indexOf("{")+1, mainString.lastIndexOf("}") ),
bb = new BlobBuilder()
bb.append(bodyString)
return URL.createObjectURL(bb.getBlob())
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)