Javascript 使用JS1.7+;blob Worker中的关键字
我的问题是,当我试图在Web Worker中使用JavaScript1.7+关键字时,比如说Javascript 使用JS1.7+;blob Worker中的关键字,javascript,html,firefox,Javascript,Html,Firefox,我的问题是,当我试图在Web Worker中使用JavaScript1.7+关键字时,比如说let,它的源代码是一个blob,它会自动失败。 我使用的代码是 function myWorker() { let msg = 'hello'; postMessage(msg); } let blob = new Blob( ['(' + myWorker + ')();'], {'type': 'text/javascript;version=1.8'} ); let url =
let
,它的源代码是一个blob,它会自动失败。
我使用的代码是
function myWorker() {
let msg = 'hello';
postMessage(msg);
}
let blob = new Blob(
['(' + myWorker + ')();'],
{'type': 'text/javascript;version=1.8'}
);
let url = URL.createObjectURL(blob);
let worker = new Worker(url);
worker.onmessage = function(msg) alert('got message: ' + msg.data);
worker.postMessage(null);
如果将第一个let
关键字替换为var
,同样的代码也可以正常工作。
有没有办法让Firefox(我用21.0版和last stable 23.0版检查过)在一个blob中理解新的JS1.7+?如果将type设置为1,这个问题是否仍然存在<代码>文本/javascript,2<代码>应用程序/javascript,3<代码>文本/ecmascript,4<代码>应用程序/ecmascript。编辑:bugzilla上似乎有一个公开的bug忘记提及了;FireFox/Gecko中的
let
等实际上来自JavaScript 1.7或ECMAScript 4规范,ECMAScript 6/Harmony版本只是继承了ES4的一部分。无论哪种方式,JavaScript 1.8.x都不是合适的名称。阅读错误报告,JavaScript1.5之后的所有新功能都不能保证在WebWorkers中像现在这样工作。感谢您指出错误。我把问题中的1.8
改为1.7+
。