웹에서 Javascript 만으로 텍스트 파일 생성

웹에서 스크립트만으로 텍스트 파일을 생성하기 위한 코드를 정리한다. 주로 사용하는 웹브라우져가 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;
}

“웹에서 Javascript 만으로 텍스트 파일 생성”에 대한 2개의 댓글

  1. 궁금했던 내용인데 잘 보고 갑니다 ~_~
    그와 별개로 IE 같은 경우 MS 보안 전문가마저 더이상 사용하지 말라고 경고하였으니 한국의 개발자분들도 이제는 IE를 퇴출시키는 방향으로 가야한다고 생각합니다. (웹 표준을 따르지 않아 별개의 코딩을 해야하는 것 및 보안 문제 등)
    참고 내용 : http://newslabit.hankyung.com/news/app/newsview.php?aid=201902192484G

    1. 안녕하세요, 김형준입니다.
      퇴출은 개발자의 의지가 아닌 사용자 요구에 맞추는게 이상적입니다.
      사용자의 요구가 IE보다는 더 빠른 크롬에 있었고..
      MS도 IE나 Edge의 기반 기술을 크롬의 엔진을 사용하겠노라는 뉴스가 있습니다.
      요즘은 워낙 웹 개발 기술이 발전해서 ES6을 지원하지 않을지라도 마음껏 ES6을 사용해도 됩니다.
      ES5로 변환해주는 트렌스파일링과 polyfill.js를 사용하면 되니까요.
      그럼에도 개발자로써 저 역시 IE는 웹 개발에서 걸림돌입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다