Worker の中では window.? 系のメソッドはほぼ使えないと思ったほうがいい。
window.location とか window.localStorage() とか、 window.setInterval() とか。
setTimeout() はなぜか使える みたいなのです。
ブラウザ側のコード WebWorker側のコードself.do_some = function(_data){ var sec = Math.floor(5000 * Math.random()); var str = "wait " + sec + "sec | msg from browser... "; for(var key in _data){ str += "[" + key + "] => " + _data[key]; } var to = setTimeout(function(){ postMessage({complete: str}); }, sec); }; self.addEventListener("message", function(_event){ self.do_some(_event.data); });