Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.click() giving access denied in IE11

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.

like image 362
skoley Avatar asked Sep 15 '17 06:09

skoley


3 Answers

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();
  }
}
like image 84
Jaromanda X Avatar answered Nov 12 '22 09:11

Jaromanda X


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

like image 23
Super User Avatar answered Nov 12 '22 11:11

Super User


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.

like image 1
jdgregson Avatar answered Nov 12 '22 09:11

jdgregson