2017-03-20 3 views
1

hereBLOB 작업 브라우저를 독립적으로 만들 수 있습니까? 포스트에 따르면

내가 변수를 다운로드하는 갈 방법이 아니다 브라우저 (내가 알고있는 파일에 JS에서 (사용자가 작성 양식을 말할 수), 그 수

서버)

을 내 요청에 대해이 작업을 수행해야합니다 나는이 코드를 사용하고 있습니다 :

textToSave = "Hello" 
var createObjectURL = (window.URL || window.webkitURL || {}).createObjectURL || function(){}; 
    var blob = null; 
    var content = textToSave; 
    var mimeString = "application/octet-stream"; 
    window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder; 

    if(window.BlobBuilder){ 
     var bb = new BlobBuilder(); 
     bb.append(content); 
     blob = bb.getBlob(mimeString); 
    }else{ 
     blob = new Blob([content], {type : mimeString}); 
    } 
    var url = createObjectURL(blob); 
    var a = document.createElement("a"); 
    a.href = url 
    a.download = "file.csv"; 
    a.innerHTML = "download file"; 
    a.click(); 

와 크롬에서 잘 작동하지만, 내가 IE-11에하려고 할 때 그때는 BLOB를 얻을

enter image description here

아이디어가 있습니까? 브라우저를 독립적으로 작동시키는 방법이 있습니까?

답변

1

개체 URL 사용에 대해 걱정하지 마십시오. 어쨌든 IE에서 완전히 지원되지 않습니다. FileSaver.js를 사용하는 것이 좋습니다 것입니다, 당신은 당신의 덩어리를 가지고하면 그 다음은 단지에 대한 모든 관련 브라우저에서 작동합니다 :

function saveBlob(){ 
    var theBlob = //... your stuff here 
    saveAs(blob, 'file.csv'); 
} 

을 그리고 앵커에서 호출 :

<a href="#" onclick="saveBlob();">download file</a> 
+0

좋은 찾고 라이브러리를. 어쨌든 IE10에서는 기본적으로'navigator.msSaveOrOpenBlob (blob, name)'을 호출합니다. –