.click()在IE11中拒绝访问

时间:2017-09-15 06:22:33

标签: javascript html internet-explorer

尝试将.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

3 个答案:

答案 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中未实现下载属性。

     

http://caniuse.com/download

     

对于Internet Explorer,您可以使用" SaveAs"命令。