【发布时间】:2013-05-26 17:37:13
【问题描述】:
我正在编写一个 chrome 扩展,它执行以下操作:
- 使用
XMLHttpRequest将文件从网站下载到内存 - 将附加数据添加到文件中,然后将结果base64编码到变量
total_encoded_data - 使用
<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, Snap 消息不会在 chrome://crashes 中生成任何崩溃报告,也不会在 chrome_debug.log 中生成任何意外输出
在提供 base64 编码字符串长度大于 2097100 的数据 uri 时,如何避免 Aw、Snap 消息?
【问题讨论】:
标签: javascript google-chrome-extension data-uri