2017-09-15 20 views
5

Podczas próby wywołania tagu .click() znacznika anchor do adresu URL auto click. Kod działa poprawnie we wszystkich przeglądarkach z wyjątkiem Internet Explorerv11..click() z odmową dostępu w IE11

Każda pomoc zostanie doceniona.

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

Tutaj jest fiddle.

+0

dla IE, użyj 'navigator.msSaveOrOpenBlob' - https://jsfiddle.net/ hcqn9m5a/3/ –

+0

Nie ma tu kodu jQuery, dlaczego masz ten tag? – Barmar

Odpowiedz

6

dla IE, można użyć navigator.msSaveOrOpenBlob

tak, cross przeglądarki, kod byłby

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

tak dla IE "var data = new Blob ([HTML_APS]);" to nie zadziała. Ten kod "navigator.msSaveOrOpenBlob (data," report_html.htm ")" powinien zostać zaimplementowany? – skoley

+1

spójrz na kod ... 'var data = new Blob ([HTML_APS]);' jest dla WSZYSTKICH przeglądarek ... to tylko W JAKIKOLWIEK pobieraniu jest inny –

+0

moje złe dzięki za rozwiązanie :) – skoley

1

Przy użyciu atrybutu pobierania anchor oznacza, że ​​przeglądarka powinna pobierać zasób, do którego prowadzi zakotwiczenie, a nie nawigować do niego.
To nie obsługuje IE11. Dla odniesienia click here

1

Na this Odpowiedź SO, atrybut "download" nie został zaimplementowany w Internet Explorer.

Atrybut pobierania nie jest zaimplementowany w przeglądarce Internet Explorer.

http://caniuse.com/download

Dla Internet Explorer można użyć polecenia "SaveAs".

Powiązane problemy