Pregunta

Recientemente cambié todos mis proyectos al modo Ecmascript 5 Strict (es decir, agregar "use stricts"; En la parte superior de cada archivo JS), sin embargo, el siguiente código de ejemplo de MDC funciona en todas partes excepto en Chrome 11.

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

El código en los trabajadores web invocará un error

Uncaught ReferenceError: onmessage is not defined.

Traté de usar var onmessage Como solución, funcionaría en Chrome 11 pero no en Firefox 4. No debería estar usando var De todos modos porque Afaik onmessage es una variable global como window, redefinirlo no tiene sentido.

¿Qué tengo que hacer?

¿Fue útil?

Solución

No debe cambiar al modo estricto si no sabe lo que significa. Por un lado, no puede especificar variables globales implícitas, que es su problema. Especificar self.onmessage.

Otros consejos

Entonces Chrome 11 es el único que trabaja como el ES5 lo está esperando. Ver https://developer.mozilla.org/en/javascript/strict_mode#simplificing_variable_uses

Tienes dos posibilidades:

var onmessage = function(...

o

function onmessage(...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top