document.getElementById('a')。click()在IE中不起作用

时间:2014-09-11 19:29:10

标签: javascript internet-explorer click

我的代码在Chrome和Firefox中有效,但在IE中却无效。它通过链接将存储在mysql数据库中的文件作为blob记录下载。

有人可以提出一个也适用于IE的解决方案吗?

代码:

function download(filename, data) {


var a = document.createElement("a");


var blob = b64toBlob(data, "application/octet-stream");

url = window.URL.createObjectURL(blob);

a.href = url;

a.download = filename;

a.click();

document.getElementById('a').click();

window.URL.revokeObjectURL(url);

}

1 个答案:

答案 0 :(得分:4)

在IE 8和9中,数据URI只能用于图像,但不能用于导航或JavaScript生成的文件下载:

功能下载(文件名,数据){

var a = document.createElement("a");
var blob = b64toBlob(data, "application/octet-stream");
url = window.URL.createObjectURL(blob);
a.href = url;
a.download = filename;
a.click();
navigator.msSaveBlob(blob, filename);
//document.getElementById('a').onclick();
window.URL.revokeObjectURL(url);

}