10

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

4

2 回答 2

12

<= IE9 不支持 window.btoa()。

还有更多的选择,但我想你可以使用jQuery.base64.js如下

if (window.btoa) {
    msg.dataEncoded = window.btoa(msg.data);
} else { //for <= IE9
    msg.dataEncoded = jQuery.base64.encode(msg.data);
}
于 2015-01-02T08:05:45.560 回答
0

这不是问题btoa()(代码在 IE8 中运行良好),但在数据方案支持下,它在 IE 8 中不起作用:

Opera 7.20 及以上版本以及Safari 和Konqueror 都支持该数据方案。但是,Internet Explorer 7 及更低版本目前不支持它。Internet Explorer 8 及更高版本仅支持 CSS、<link> 和 <img> 中图像的数据 URI

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

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

于 2015-01-02T08:38:57.147 回答