2017-01-10 2 views
0

자바 스크립트를 사용하여 텍스트 파일을 다운로드하고 싶습니다. 나는 많은 시나리오를 시도했지만 행운을 얻지 못했습니다.IE에서 작동하지 않는 "encodeURIComponent"txt 파일을 다운로드하십시오.

(function() { 
 
    var textFile = null, 
 
    makeTextFile = function(text) { 
 
     var data = new Blob([text], { 
 
     type: 'text/plain' 
 
     }); 
 

 
     // If we are replacing a previously generated file we need to 
 
     // manually revoke the object URL to avoid memory leaks. 
 
     if (textFile !== null) { 
 
     window.URL.revokeObjectURL(textFile); 
 
     } 
 

 
     textFile = window.URL.createObjectURL(data); 
 

 
     return textFile; 
 
    }; 
 

 

 
    var create = document.getElementById('create'), 
 
    textbox = document.getElementById('textbox'); 
 

 
    create.addEventListener('click', function() { 
 
    var link = document.getElementById('downloadlink'); 
 
    link.href = makeTextFile(textbox.value); 
 
    link.style.display = 'block'; 
 
    }, false); 
 
})();
<textarea id="textbox">Type something here</textarea> 
 
<button id="create">Create file</button> 
 
<a download="info.txt" id="downloadlink" style="display: none">Download</a>

도와주세요 : 다음은 한 예입니다.

+2

'질문의 코드'정책을 우회하기 위해 이와 같은 속임수를 사용하지 마십시오. jsFiddle이 내려 가면 질문에 답할 수 없습니다. 관련 코드를 모두 포함하도록 수정하십시오. –

+0

또한 어떤 버전의 IE가 구체적입니까?

+2

에서 지원되지 않습니다. @JituJoshi 첫 번째 의견에 따르면 Rory와 합의했습니다. 이번에는 당신을 위해 그것을했지만 질문 자체에 관련 코드를 추가하는 연습을하십시오. – Jai

답변

0

감사합니다. 솔루션을 찾았습니다.

var blob = new Blob(["Hello World"], {type: "text/plain;charset=utf-8"}); 

saveAs(blob, "filename.txt"); 

이 코드 예제 : https://raw.githubusercontent.com/eligrey/FileSaver.js/master/FileSaver.js

는 그 다음이 txt 파일을 다운로드하는 코드의 2 라인을 취합니다

function download(data, filename, type) { 
    var a = document.createElement("a"), 
     file = new Blob([data], { type: type }); 
    if (window.navigator.msSaveOrOpenBlob) // IE10+ 
     window.navigator.msSaveOrOpenBlob(file, filename); 
    else { // Others 
     var url = URL.createObjectURL(file); 
     a.href = url; 
     a.download = filename; 
     document.body.appendChild(a); 
     a.click(); 
     setTimeout(function() { 
      document.body.removeChild(a); 
      window.URL.revokeObjectURL(url); 
     }, 0); 
    } 
} 
0

매우 빠르고 쉬운 솔루션을 사용하는 FileSaver.js입니다 텍스트 "Hello world"가 들어있는 "filename.txt"파일을 다운로드하는 대화 상자가 표시됩니다. 파일 이름과 선택한 텍스트 내용으로 바꾸십시오!

관련 문제