javascript - 数据 uri 太大时为 "Aw, Snap"

标签 javascript google-chrome-extension data-uri

我正在编写一个执行以下操作的 chrome 扩展程序:

  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> 向用户提供数据.在哪里total_encoded_data使用 jQuery 添加到 href。

我发现,通过手动二进制搜索,如果 total_encoded_data 的大小大于 2097100 个字符,那么当我单击该链接时,我将收到一条 Aw, Snap 消息。如果尺寸较小,那么我可以按预期下载。

除了测试文件大小,我还使用了atoi确保base64编码有效,运行无误。

Aw,Snap 消息不会在 chrome://crashes 中产生任何崩溃报告chrome_debug.log 中也没有任何意外输出

在提供 base64 编码字符串长度大于 2097100 的数据 uri 时,如何避免出现 Aw, Snap 消息?

最佳答案

这是一个known chromium bug .推荐的解决方法是使用 blob URL .另见 Creating a Blob from a base64 string in JavaScript .

关于javascript - 数据 uri 太大时为 "Aw, Snap",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16761927/

相关文章:

javascript - 使用 RegEx 替代条件语句

css - 数据 URI : Changing color & defining content area

html - CSS 中的 Base64 图标与多种用途的外部图像的性能

html - 数据 URI 的用途是什么?

javascript - 调用对象内的函数作为指令的参数

javascript - ionic Angular 嵌套 ng-repeat 过滤器,如果为空则隐藏标题

javascript - 在 react Prop 中解构嵌套对象出错

javascript - 我可以检测网页中是否存在扩展程序吗?

google-chrome - Google Chrome 扩展程序和 NPAPI

javascript - 递归/嵌套函数 - 参数范围