2010-05-20 10 views
6

obtengo SyntaxError: Parse Error, solo en safari. Aquí está el código en cuestión.SyntaxError: Parse Error solo ocurre en safari

<script type="text/javascript"> 
$(document).ready(function() { 
    $("form").transload({ 
     auth: {key: "b7deac9c96af6c745e914e25d0350baa"}, 
     flow: { 
      encode: { 
       "use": ":original", 
       "robot": "/video/encode", 
       "preset": "flash", 
       "width": 480, 
       "height": 320 
      }, 
      encode_iphone: { 
       "use": ":original", 
       "robot": "/video/encode", 
       "preset": "iphone" 
      }, 
      export: { 
       "use": ["encode","encode_iphone"], 
       "robot": "/s3/store" 
      } 
     } 
    }); 
}); 
</script> 

Estoy usando transloadit a jquery plugin. que funciona en cualquier otra página y se carga bien en safari por su aspecto.

Los errores está en la línea 44, que es

export: { 

¿Alguien puede ver nada malo en esa página?

+0

no se puede ver el código en cuestión. por favor corrige la publicación. – JHurrah

Respuesta

9

The following words are used as keywords in proposed extensions and are therefore reserved to allow for the possibility of future adoption of those extensions.

class enum extends super const export import

ECMAScript Language Specification, sección 7.6.1 palabras reservadas

Otros intérpretes podrían ser más liberales sobre ellos, lo que podría explicar que sólo se da una SyntaxError en JavaScriptCore (intérprete de JavaScript de Safari).

+0

Me gustaría agregar que el error del analizador también se activa cuando las palabras clave de JavaScript (por ejemplo, "eliminar" y "nuevo") se utilizan como claves de propiedad. Una solución es citar o renombrar la propiedad. [JSHint] (http://jshint.com/) puede usarse para encontrar estos errores en tu código, usando '" es3 ": true' en' .jshintrc' o '// jshint es3: true' en tu JS archivo. –

6

La palabra export es una ECMAScript future reserved word, en algunas implementaciones que usan estas palabras clave como identificadores causan SintaxisErrores.

Sin embargo sólo tiene que utilizar una cadena literal, en lugar del identificador:

//.... 
     "export": { 
      "use": ["encode","encode_iphone"], 
      "robot": "/s3/store" 
     } 
//.... 

Esta palabra clave se puede utilizar en el futuro para declaraciones módulo:

+0

que funcionó muy bien, gracias! –

Cuestiones relacionadas