.click() giving access denied in IE11

2019-04-20 08:20发布

问题:

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.

回答1:

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


回答2:

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



回答3:

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.