2010-05-20 12 views
6

Im getting SyntaxError: Parse Error, solo su safari. Ecco il codice in questione.SyntaxError: Parse Errore solo in 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> 

Sto utilizzando transloadit un plug-in jquery. che funziona su ogni altra pagina e sta caricando bene in safari dal suo aspetto.

Gli errori è sulla linea 44 che è

export: { 

chiunque può vedere qualcosa di sbagliato in quella pagina?

+0

non può vedere il codice in questione. per favore correggi il post. – JHurrah

risposta

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, sezione 7.6.1 parole riservate

Altri interpreti potrebbero essere più liberale su di loro, il che potrebbe spiegare che dà solo un SyntaxError in JavaScriptCore (interprete JavaScript di Safari).

+0

Vorrei aggiungere che l'errore del parser viene attivato anche quando le parole chiave JavaScript (ad esempio 'delete' e' new') vengono utilizzate come chiavi di proprietà. Una soluzione è di citare o rinominare la proprietà. [JSHint] (http://jshint.com/) può essere usato per trovare questi errori nel tuo codice, usando '" es3 ": true' in' .jshintrc' o '// jshint es3: true' nel tuo JS file. –

6

La parola export è un ECMAScript future reserved word, in alcune implementazioni che utilizzano queste parole chiave come identificatori causano SyntaxErrors.

Tuttavia si può semplicemente utilizzare una stringa letterale, invece l'identificativo:

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

Questa parola chiave può essere utilizzato sul futuro dei dichiarazioni del modulo:

+0

che ha funzionato alla grande, grazie! –

Problemi correlati