尝试将.click()
个anchor
标记调用到auto click
网址时。
除Internet Explorer
v11 之外,该代码在所有浏览器中均可正常运行。
任何帮助将不胜感激。
var strContent = "a,b,c\n1,2,3\n";
var HTML_APS = strContent;
var data = new Blob([HTML_APS]);
var temp_link = document.createElement('a');
temp_link.href = URL.createObjectURL(data);
temp_link.download = "report_html.htm";
temp_link.type = "text/html";
temp_link.style = "display:none";
document.body.appendChild(temp_link);
if (confirm("Press a button!") == true) {
temp_link.click();
temp_link.remove();
}
这是fiddle。
答案 0 :(得分:28)
对于IE,您可以使用navigator.msSaveOrOpenBlob
所以,跨浏览器,代码将是
var strContent = "a,b,c\n1,2,3\n";
var HTML_APS = strContent;
var data = new Blob([HTML_APS]);
if (confirm("Press a button!") == true) {
if (navigator.msSaveOrOpenBlob) {
navigator.msSaveOrOpenBlob(data, "report_html.htm");
} else {
var temp_link = document.createElement('a');
temp_link.href = URL.createObjectURL(data);
temp_link.download = "report_html.htm";
temp_link.type = "text/html";
document.body.appendChild(temp_link);
temp_link.click();
temp_link.remove();
}
}
答案 1 :(得分:1)
当使用下载属性锚点时,这表示浏览器应该下载锚点指向的资源而不是导航到它。
它不支持IE11。
供参考click here
答案 2 :(得分:1)
根据this SO回答,'下载'属性尚未在Internet Explorer中实现。
Internet Explorer中未实现下载属性。
对于Internet Explorer,您可以使用" SaveAs"命令。