我正在开发一个使用Web worker的项目.
在我的脑子部分,我有这个代码:
var worker = new Worker("worker.js");
// More code
Run Code Online (Sandbox Code Playgroud)
这在Safari中运行良好,但Chrome报告以下错误:
Uncaught SecurityError: Failed to create a worker: script at '(path)/worker.js' cannot be accessed from origin 'null'.
为什么这在Safari中完美运行而不是Chrome?我该如何解决?
谢谢.
当我尝试在HTML5中使用Web Workers功能时,我的firefox工作愉快,但chrome抱怨:
未捕获的TypeError:无法调用未定义的方法'postMessage'xstartWorkerworker.html:7(匿名函数)worker.html:1 onclickworker.html:2
worker.html
<button onclick="xstartWorker()">Start worker</button>
<output id="result"></output>
<script>
function xstartWorker()
{
worker.postMessage({'cmd': 'startWorker', 'msg': 'Start now!'});
}
var worker = new Worker('worker.js');
worker.addEventListener('message', function(e)
{
document.getElementById('result').textContent = e.data;
}
, false);
</script>
Run Code Online (Sandbox Code Playgroud)
worker.js
self.addEventListener('message', function(e)
{
var data = e.data;
switch (data.cmd)
{
case 'startWorker':
self.postMessage('worker thread start now:' + data.msg);
break;
default:
self.postMessage('default');
}
}
, false);
Run Code Online (Sandbox Code Playgroud)
我能做些什么让它在chrome中运行?
顺便说一下,当我在http://playground.html5rocks.com/#inline_workers上试用这个样本 并且这次chrome工作时,但是firefox抱怨说
错误:worker未定义源文件:http: //playground.html5rocks.com/ Line:39