SyntaxError:解析错误只发生在safari

问题描述:

Im正在获取SyntaxError:解析错误,只在safari上。这是有问题的代码。SyntaxError:解析错误只发生在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> 

我正在使用transloadit一个jQuery插件。它可以在任何其他页面上工作,并通过它的外观加载Safari浏览器。

的错误是第44行是

export: { 

有人能看到什么不对的页面?

+0

无法看到有问题的代码。请纠正帖子。 – JHurrah 2010-05-20 01:02:22

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

这个关键字可以在未来模块声明使用

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,部分7.6.1保留字

其他解释可能是更*的他们,这或许可以解释,它只是给出了一个的JavaScriptCore SyntaxError(Safari浏览器的JavaScript解释器)。

+0

我想补充的是,当JavaScript关键字(例如'delete'和'new')被用作属性键时,也会触发解析器错误。解决方案是引用或重命名属性。 [JSHint](http://jshint.com/)可以用于在你的代码中查找这些错误,在你的JS的'.jshintrc'或'// jshint es3:true'中使用'“es3”:true'文件。 – 2013-06-08 16:52:57

单词export是ECMAScript future reserved word,在一些使用这些关键字作为标识符的实现中会导致语法错误。

但是你可以简单地用一个字符串,而不是标识符:

+0

工作很好,谢谢! – 2010-05-20 01:08:55