Javascript Chrome 11抱怨在ECMAScript 5严格模式下没有为worker.js定义onmessage

Javascript Chrome 11抱怨在ECMAScript 5严格模式下没有为worker.js定义onmessage,javascript,google-chrome,web-worker,Javascript,Google Chrome,Web Worker,我最近将所有项目切换到ECMAScript 5 strict模式(即在每个JS文件的顶部添加“use stricts”),但是下面的MDC示例代码适用于除Chrome 11之外的所有地方 web workers中的代码将调用错误 未捕获引用错误:未定义onmessage。 我尝试使用var-onmessage作为一种变通方法,它可以在Chrome11中使用,但在Firefox4中不能。无论如何,我不应该使用var,因为AFAIKonmessage是一个全局变量,就像window一样,重新定义它

我最近将所有项目切换到ECMAScript 5 strict模式(即在每个JS文件的顶部添加
“use stricts”
),但是下面的MDC示例代码适用于除Chrome 11之外的所有地方

web workers中的代码将调用错误

未捕获引用错误:未定义onmessage。

我尝试使用
var-onmessage
作为一种变通方法,它可以在Chrome11中使用,但在Firefox4中不能。无论如何,我不应该使用
var
,因为AFAIK
onmessage
是一个全局变量,就像
window
一样,重新定义它毫无意义


我该怎么办?

那么Chrome 11是唯一一个像ES5那样工作的人。看

你有两种可能:

var onmessage=function(…


消息上的函数(…

如果你不知道严格模式意味着什么,你不应该切换到严格模式。首先,你不能指定隐式全局变量,这是你的问题。指定
self.onmessage

你能提供一些代码吗?如果没有样本,很难猜测谢谢!这就是我最终使用的。但是如果是关于我应该d不使用隐式全局变量,为什么strict模式不在
postMessage()
中也抛出错误?你可以随意使用全局变量,只是不能隐式指定/定义它们。我明白了。如果是这样,我对浏览器的不同行为感到好奇。这是一个应该纠正的错误吗?