웹에서 스크립트만으로 텍스트 파일을 생성하기 위한 코드를 정리한다. 주로 사용하는 웹브라우져가 IE와 Chrome인데, 텍스트 파일을 생성하는 방식이 서로 다르다. 먼저 크롬의 경우에는 아래와 같다.
function saveToFile_Chrome(fileName, content) { var blob = new Blob([content], { type: 'text/plain' }); objURL = window.URL.createObjectURL(blob); // 이전에 생성된 메모리 해제 if (window.__Xr_objURL_forCreatingFile__) { window.URL.revokeObjectURL(window.__Xr_objURL_forCreatingFile__); } window.__Xr_objURL_forCreatingFile__ = objURL; var a = document.createElement('a'); a.download = fileName; a.href = objURL; a.click(); }
다음은 IE에서 작동하는 코드이다.
function saveToFile_IE(fileName, content) { var blob = new Blob([content], { type: "text/plain", endings: "native" }); window.navigator.msSaveBlob(blob, fileName); //window.navigator.msSaveOrOpenBlob(blob, fileName); }
아래는 현재 사용하는 웹브라우저가 IE인지를 식별하는 함수이다.
function isIE() { return (navigator.appName === 'Netscape' && navigator.userAgent.search('Trident') !== -1) || navigator.userAgent.toLowerCase().indexOf("msie") !== -1; }
궁금했던 내용인데 잘 보고 갑니다 ~_~
그와 별개로 IE 같은 경우 MS 보안 전문가마저 더이상 사용하지 말라고 경고하였으니 한국의 개발자분들도 이제는 IE를 퇴출시키는 방향으로 가야한다고 생각합니다. (웹 표준을 따르지 않아 별개의 코딩을 해야하는 것 및 보안 문제 등)
참고 내용 : http://newslabit.hankyung.com/news/app/newsview.php?aid=201902192484G
안녕하세요, 김형준입니다.
퇴출은 개발자의 의지가 아닌 사용자 요구에 맞추는게 이상적입니다.
사용자의 요구가 IE보다는 더 빠른 크롬에 있었고..
MS도 IE나 Edge의 기반 기술을 크롬의 엔진을 사용하겠노라는 뉴스가 있습니다.
요즘은 워낙 웹 개발 기술이 발전해서 ES6을 지원하지 않을지라도 마음껏 ES6을 사용해도 됩니다.
ES5로 변환해주는 트렌스파일링과 polyfill.js를 사용하면 되니까요.
그럼에도 개발자로써 저 역시 IE는 웹 개발에서 걸림돌입니다.