使用JavaScript中的dataURI渲染图像

3

我正在尝试使用AJAX加载作为数据URI发送的图像。只要图像小于32kb,一切都正常。有些图像很大,约500 kb左右。我对此进行了一些研究,发现IE8仅支持使用datauri加载小于32kb的图像。

是否有任何解决方法可以加载大于32kb的图像或者我在这里漏掉了什么?


你是在针对IE8进行开发吗? - Richard JP Le Guen
没错,我针对的是IE8。 - Asdfg
可能是如何解决IE8 32K数据URI上的base64编码限制?的重复问题。 - epascarello
"使用作为数据URI发送的AJAX,你能给我们展示一些代码吗?" - Richard JP Le Guen
以上问题也被问到,但没有真正的答案。 - epascarello
@epascarello:你提到的问题没有任何解决方案。 - Asdfg
3个回答

3

数据URI方案

Internet Explorer 8:出于安全考虑,Microsoft将其支持范围限制在某些“不可导航”内容上,包括嵌入在数据URI中的JavaScript可能无法被脚本过滤器(如基于Web的电子邮件客户端中使用的过滤器)解释。 版本8中数据URI必须小于32 KiB。 数据URI仅支持以下元素和/或属性:[4]

  • object(仅限图像)
  • img
  • input type=image
  • 链接(数据URI必须使用base64编码)
  • 接受URL的CSS声明,例如background-image、background、list-style-type、list-style等。

Internet Explorer 9:Internet Explorer 9没有32KiB的限制并允许更广泛的元素。


3
我知道这一部分,并且已经通读了维基百科上的文章。我正在寻找解决方案或变通方法。 - Asdfg

0

是的,可以使用一些注释技巧将其作为MHTML提供,这里描述描述


-1

加载图片需要很长时间。IE停止响应并要求停止运行脚本。:( - Asdfg
Canvas元素在IE中不受支持。因此,这不是一个解决方案。 - dude
@julmot canvas 元素自 IE9 版本起就得到了支持(http://caniuse.com/#search=canvas)。对于 IEv8,我已经添加了一个解决方法的链接(任何低于 IE8 的版本都不应该得到任何人的支持)。因此,这个负评是不合理的... :| - Andreas
@julmot,为此我已经添加了链接到如何在IE中使用HTML5画布元素? - 管它呢...! - Andreas
一个兼容性视图的链接并不是解决方案。如果你只想分享一个链接,你应该使用评论框。 - dude

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接