2010-05-20 131 views
6

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

回答

9

//.... 
     "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

6

單詞export是ECMAScript future reserved word,在一些使用這些關鍵字作爲標識符的實現中會導致語法錯誤。

但是你可以簡單地用一個字符串,而不是標識符:

+0

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