我正在编写一个 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>
。使用jQuerytotal_encoded_data
添加到 href 的位置。
我通过手动二进制搜索发现,如果 的大小total_encoded_data
大于 2097100 个字符,那么当我单击链接时,我会收到一条 Aw, Snap 消息。如果尺寸更小,那么我可以按预期下载。
除了测试文件大小,我还用来atoi
确保base64编码是有效的,并且它运行没有错误。
Aw, Snap 消息不会chrome://crashes
在chrome_debug.log
在提供 base64 编码字符串长度大于 2097100 的数据 uri 时,如何避免 Aw、Snap 消息?