2011-05-03 58 views
0

我最近將所有項目切換到ECMAScript 5嚴格模式(即在每個JS文件的頂部添加"use stricts";),但以下MDC示例代碼無處不在除了Chrome 11Chrome 11抱怨沒有爲ECMAScript 5中的worker.js定義onmessage嚴格模式

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

在網絡工作者的代碼將調用錯誤

Uncaught ReferenceError: onmessage is not defined.

我試圖用var onmessage作爲一種解決方法,它會在Chrome 11的工作,但不能在Firefox 4,我不該」 t使用var無論如何coz AFAIK onmessage是一個全局變量,就像window,重新定義它是沒有意義的。

我該怎麼辦?

+0

你能提供一些代碼嗎?沒有樣品就難以猜測 – Mamsaac 2011-05-03 09:45:47

回答

0

你不應該切換到嚴格模式下,如果你不知道這意味着什麼。首先,你不能指定隱式的全局變量,這是你的問題。指定self.onmessage

+0

謝謝!這就是我最終使用的。但是如果它是關於我不應該使用隱式全局變量,爲什麼嚴格模式也不會在'postMessage()'處拋出錯誤? – timdream 2011-05-06 08:18:02

+0

你可以使用所有你想要的全局變量,你不能*指定*/*定義*他們*隱式*。 – 2011-05-06 21:02:02

+0

我明白了。如果是這樣,我對瀏覽器的不同行爲很好奇。這是一個應該糾正的錯誤嗎? – timdream 2011-05-07 16:29:23

相關問題