.click() giving access denied in IE11

2019-04-20 07:48发布

When trying to invoke a .click() of an anchor tag to auto click the url. The code is working fine in all browsers except Internet Explorer v11.

Any help will be appreciated.

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();
}

here is the fiddle.

3条回答
Lonely孤独者°
2楼-- · 2019-04-20 08:26

Per this SO answer, the 'download' attribute has not been implemented in Internet Explorer.

The download attribute is not implemented in Internet Explorer.

http://caniuse.com/download

For Internet explorer you can use the "SaveAs" command.

查看更多
Viruses.
3楼-- · 2019-04-20 08:32

When used download attribute an anchor, this signifies that the browser should download the resource the anchor points to rather than navigate to it.
It doesn't support IE11. For reference click here

查看更多
你好瞎i
4楼-- · 2019-04-20 08:40

For IE, you can use navigator.msSaveOrOpenBlob

so, cross browser, the code would be

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();
  }
}
查看更多
登录 后发表回答