我希望能够输出包含图像的HTML文件(在文件本身内)。谷歌搜索,我遇到了几个方法可以做到这一点:如何在HTML文件中编码图像数据?
-
- 数据URI如
<IMG SRC="data:image/gif;base64,[...]">
<object ... >
标签(尽管使用数据URI,所以可以继承相同限制)
但我不知道哪个更好的浏览器支持,或者如果有其他的选择。
任何有这方面实践经验的人都可以给我建议吗?谢谢。
我希望能够输出包含图像的HTML文件(在文件本身内)。谷歌搜索,我遇到了几个方法可以做到这一点:如何在HTML文件中编码图像数据?
<IMG SRC="data:image/gif;base64,[...]">
<object ... >
标签(尽管使用数据URI,所以可以继承相同限制)但我不知道哪个更好的浏览器支持,或者如果有其他的选择。
任何有这方面实践经验的人都可以给我建议吗?谢谢。
在关于浏览器的支持,从Wikipedia:
数据URI目前支持 以下Web浏览器:
IE不正确处理<object>
代码,请参阅here更多细节内置支持的IE外壳浏览器。简而言之,你不能相信IE来显示图像。
也没有得到很好的支持,因为它被用于很多跨站脚本攻击。
关于web的this有很多讨论,他们都得出结论,没有好的通用方法来嵌入图像。如果您只需要支持一部分浏览器,那么数据uri可能会工作,或者是数据uri和javascript的组合。
这是否意味着您偏爱javascript:imageData方法?或者这两种方法都有限制? – 2010-01-18 09:30:09
看到我上面的编辑 - javascript:imageData可能是最不可用的方法,因为许多浏览器都是针对跨站点脚本攻击的消除向量。 – jball 2010-01-18 09:32:38
谢谢,jball - Tarquin链接很有帮助。 – 2010-01-18 09:42:50
imageData更灵活,例如一些ie将数据限制为32k。
数据URI方案的合理性很好的支持,除了在Internet Explorer版本8
的JavaScript的URI之前,我想,稍微好一点的支持,但如果JS是不可用的失败。
您可以做的最好的事情是坚持外部图像资源。
我是否应该提供这两个选项,并对JS支持进行测试? – 2010-01-18 09:25:42
你不能。 img元素没有对src属性的回退支持,并且对象元素支持不良(特别是在Internet Explorer中) – Quentin 2010-01-18 09:43:05
数据URI在< IE8中不起作用。 IE8支持他们高达32KB。
另一个类似但不完全的HTML选项是MHTML。 http://en.wikipedia.org/wiki/MHTML – bobince 2010-01-18 16:04:41
MHTML不太受浏览器支持,但可以通过Microsoft Word读取......也许值得思考。 – 2010-01-18 21:09:52