Chrome 11 si lamenta di OnMessage non è definito per Worker.js in ECMAScript 5 Modalità rigorosa

StackOverflow https://stackoverflow.com/questions/5867539

Domanda

Di recente ho cambiato tutti i miei progetti in modalità rigorosa ECMAScript 5 (cioè Aggiungi "use stricts"; In cima a ogni file JS), tuttavia il seguente codice di esempio MDC funziona ovunque Tranne Chrome 11.

https://developer.mozilla.org/en/using_web_workers#the_javascript_code

Il codice nei lavoratori web invocherà l'errore

Uncaught ReferenceError: onmessage is not defined.

Ho provato a usare var onmessage Come soluzione alternativa, funzionerebbe in Chrome 11 ma non in Firefox 4. Non dovrei usare var Comunque perché Afaik onmessage è una variabile globale proprio come window, ridefinendolo non ha senso.

Cosa dovrei fare?

È stato utile?

Soluzione

Non dovresti passare alla modalità rigorosa se non sai cosa significhi. Per uno, non è possibile specificare variabili globali implicite, che è il tuo problema. Specificare self.onmessage.

Altri suggerimenti

Quindi Chrome 11 è l'unico che lavora come ES5 lo aspetta. Vedere https://developer.mozilla.org/en/javascript/strict_mode#simplify_vable_uses

Hai due possibilità:

var onmessage = function(...

o

function onmessage(...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top