Internet Explorer中的备用btoa编码

时间:2013-08-29 10:33:47

标签: javascript

我正在尝试将http://jsbin.com/ufufez/1/edit中的相同代码实现到我的环境中,并且它在IE中不起作用。有人可以为此提供替代解决方案,使其在IE中工作> 8。

2 个答案:

答案 0 :(得分:12)

< = IE9。

不支持<。pb> window.btoa()

还有更多选择,但我猜您可以使用jQuery.base64.js,如下所示

if (window.btoa) {
    msg.dataEncoded = window.btoa(msg.data);
} else { //for <= IE9
    msg.dataEncoded = jQuery.base64.encode(msg.data);
}

答案 1 :(得分:0)

这不是btoa()的问题(代码在IE8中运行正常)但是在IE 8中支持数据方案并且won't work

  

Opera 7.20及更高版本支持数据方案,以及   Safari和Konqueror。但是,Internet Explorer 7及更低版本不支持   目前支持它。 Internet Explorer 8及更高版本仅支持数据   CSS中的图像的URI,&lt; link&gt;和&lt; img&gt;

因此,<a href="data:text/xml;base64,...">download</a>无法在IE8中启动下载。

要使它在IE8中运行,您需要在服务器端解决它(在那里创建一个临时的xml文件,并在没有数据方案的情况下创建一个标准链接)。