프로그래밍/Javascript
InternetExplorer ajax 파일 다운로드 처리 (msSaveBlob 사용)
김퇴근
2019. 4. 12. 16:04
반응형
백오피스의 일부 엑셀 다운로드가 IE에서 안 된다는 오류가 들어왔다. 열어보니 두 케이스였다.
- 프론트에서 데이터 내용을 만들어 a 태그에 넣어 클릭 발생
- 서버에서 받아오지만 ajax로 byte[]를 받아와 a 태그로 만들어 클릭 발생
어쨌뜬 <a/>
의 download
어트리뷰트를 사용한다는 공통점이 있었다. 이건 IE에서는 안된다. download
어트리뷰트가 엣지부터 가능하기 때문이다. (IE를 안 쓰면 모두가 행복한데 ㅠㅠ)
그냥 서버로 처리할까 하다가 msSaveBlob
라는 것을 찾았다. IE10부터 지원한다.
if (window.navigator.msSaveBlob) {
var blob = new Blob([datastring]);
window.navigator.msSaveBlob(blob, fileName);
} else {
// ...
}
마음의 평화가 찾아왔다.
반응형