gpt4 book ai didi

javascript - 更好地测试 base64 URI 支持(我可以在 JS 中创建一个大的 base64 编码图像吗?)

转载 作者:太空狗 更新时间:2023-10-29 15:12:14 25 4
gpt4 key购买 nike

我正在使用 Modernizr 来检测我们的用户正在运行的浏览器中支持的功能,到目前为止一切顺利。但是我在测试 base64 兼容性时遇到了一个理论上的问题。这个支持的补丁详解here , 并且有效-除了 IE8 的奇怪情况- it only allows base64 encoded images of up to 32KB .

我真的不想在我的 JS 文件中嵌入一个 32KB 长的 base64 字符串,它会增加大量的膨胀。那么,我可以使用 JS 创建一个 32KB- valid- 图像吗?我正在考虑在字符串中重复某种模式,直到它达到 32KB 的长度,诸如此类。或者可能采用现有的小字符串(如 Modernizr 补丁中的字符串)并在末尾添加垃圾数据,但仍会生成有效图像。

除了如何处理现有图像外,我对 base64 编码几乎一无所知。有人有什么想法吗?

最佳答案

我有一个答案。我尝试了各种技术(我可以手动添加的 PNG 源中的重复文本 block 等),直到我发现添加换行符似乎可以完成这项工作:

    var b64test = new Image();
b64test.onload = function() {
alert("yay!")
}

b64test.onerror = function() {
alert("boo")
}

/* A 1x1 GIF image */

var base64str = "R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="
while (base64str.length < 33000) {
base64str = "\r\n" + base64str;
}

b64test.src= "data:image/gif;base64," + base64str;

在 IE8 中失败,在 IE9 和其他浏览器中有效。不过,我很乐意听到任何替代方案。

关于javascript - 更好地测试 base64 URI 支持(我可以在 JS 中创建一个大的 base64 编码图像吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6680539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com