2017-09-15 21 views
5

anchor 태그의 .click()을 호출하여 auto click URL을 호출하려고 시도했습니다. Internet Explorerv11을 제외한 모든 브라우저에서 코드가 정상적으로 작동합니다.IE11에서 .click() 액세스가 거부되었습니다.

도움이 될 것입니다.

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입니다.

+0

을 사용할 수 있습니다,'navigator.msSaveOrOpenBlob'를 사용 - https://jsfiddle.net/ hcqn9m5a/3/ –

+0

여기에 jQuery 코드가 없습니다. 왜 그 태그가 있습니까? – Barmar

답변

6

IE를 들어, 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(); 
    } 
} 
+0

그래서 IE의 경우 "var data = new Blob ([HTML_APS]);" 이 코드는 "navigator.msSaveOrOpenBlob (data,"report_html.htm ")"을 구현해야합니까? – skoley

+1

코드를 보면 ...'var data = new Blob ([HTML_APS]);'는 모든 브라우저 용입니다 ... 다른 다운로드 방법은 –

+0

입니다. – skoley

1

다운로드 속성에 앵커가 사용되면 브라우저는 앵커가 가리키는 리소스로 다운로드해야 함을 나타냅니다.
IE11을 지원하지 않습니다. 참조 용 click here

1

this 이렇게 대답하면 'download'속성이 Internet Explorer에서 구현되지 않았습니다.

다운로드 특성이 Internet Explorer에 구현되어 있지 않습니다.

http://caniuse.com/download

Internet Explorer 용 당신은 "다른 이름으로 저장"명령을 사용할 수 있습니다.