4

我正在动态生成一个base64 gif,并试图创建一个指向新页面的链接以打开一个完整大小的gif 版本。这适用于 chrome,但在 IE 中,仅显示 img 缩略图。当有人点击 IE 中的链接时,会打开一个空白页面。

有什么想法吗?

谢谢

马特

echo '<a href="data:image/gif;base64,'. $data. '" target=_blank>';
echo '<img src="data:image/gif;base64,'. $data . '" width="200"/></a>';
4

2 回答 2

4

据此,不能在 IE 中使用数据 uri 进行导航。

  • Internet Explorer 到第 7 版(截至 2011 年 9 月约占网络流量的 5%),缺乏支持。然而,这可以通过提供浏览器特定的内容来克服。[ 6 ]
  • Internet Explorer 8 将数据 URI 的最大长度限制为 32 KB。(Internet Explorer 9 没有这个限制)[ 4 ][ 3 ]
  • 在 IE 8 和 9 中,数据 URI 只能用于图像,不能用于导航或 Javascript 生成的文件下载。[ 7 ]
于 2012-10-09T02:44:04.857 回答
1

如果您使用 Java,您将创建一个 servlet 解码器。像这样:https ://gist.github.com/sjpuas/6217394这适用于所有 IE 版本

用jquery替换像这样的url图片

if ($.browser.msie && $.browser.version == "6.0") {
                $("img[src*=base64]").each(function (i, img) {
                    var base64 = $(img).attr("src").split("base64,")[1];
                    var encoded = encodeURIComponent(base64);
                    $(img).attr("src", "/myApp/base64Servlet?base64=" + encoded);
                });
            }
于 2013-08-13T02:49:08.313 回答