0

最近、すべてのプロジェクトをECMAScript 5の厳密モードに切り替えました(つまり、"use stricts";すべてのJSファイルの先頭に追加します)が、次のMDCサンプルコードはChrome11を除くすべての場所で機能します。

https://developer.mozilla.org/en/Using_web_workers#The_JavaScript_code

Webワーカーのコードはエラーを引き起こします

Uncaught ReferenceError: onmessage is not defined.

回避策として使用しようとしvar onmessageましたが、Chrome 11では機能しますが、Firefox 4では機能しません。varとにかく使用しないでください。cozAFAIKonmessageは、のようにグローバル変数でありwindow、再定義しても意味がありません。

私は何をすべきか?

4

2 に答える 2

1

次に、ES5が期待しているように動作しているのはChrome11だけです。https://developer.mozilla.org/en/JavaScript/Strict_mode#Simplifying_variable_usesを参照してください

2つの可能性があります。

var onmessage = function(...

また

function onmessage(...

于 2011-05-03T10:34:03.793 に答える
0

意味がわからない場合は、厳密モードに切り替えないでください。1つは、暗黙のグローバル変数を指定できないことです。これが問題です。を指定しself.onmessageます。

于 2011-05-03T20:09:31.317 に答える