2013-05-26 70 views
35

我正在寫一個Chrome擴展其執行以下操作:「喔唷,崩潰」當數據URI太大

  1. 下載總數使用XMLHttpRequest
  2. 從一個網站到存儲器中的文件添加額外的數據到文件,然後base64將結果編碼到變量total_encoded_data
  3. 使用<a href=data:application/octet-stream;charset=utf-8;base64,' + total_encoded_data+' download='file.bin'>Click to Download</a>將數據提供給用戶。使用jQuery將total_encoded_data添加到href中。

我發現,通過手動二進制搜索,如果total_encoded_data的大小大於2097100個字符,那麼當點擊鏈接時,我會得到一個Aw,Snap消息。如果尺寸較小,那麼我可以按預期下載。

除了測試文件大小之外,我還使用atoi來確保base64編碼是有效的,並且其運行沒有錯誤。

的AW,捕捉消息不會產生任何chrome://crashes崩潰報告,也沒有在chrome_debug.log

如何服務於數據的URI,其中base64編碼串長度是當我避免的Aw,捕捉消息的任何意外的輸出大於2097100?

回答

相關問題