如何使用base64编码方法在IE中建立链接?

时间:2012-10-09 02:10:43

标签: internet-explorer base64 data-uri

我正在动态生成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>';

2 个答案:

答案 0 :(得分:4)

根据this,您无法在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]
  •   

答案 1 :(得分: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);
                });
            }