Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以使BLOB独立于浏览器工作吗?_Javascript_File_Blob - Fatal编程技术网

Javascript 我可以使BLOB独立于浏览器工作吗?

Javascript 我可以使BLOB独立于浏览器工作吗?,javascript,file,blob,Javascript,File,Blob,据邮报报道 我可以将js中的变量(比如用户填写的表单)下载到浏览器中的文件中 (我知道这不是解决问题的办法,服务器必须为我的请求这样做) 我正在使用以下代码: textToSave = "Hello" var createObjectURL = (window.URL || window.webkitURL || {}).createObjectURL || function(){}; var blob = null; var content = textToSave;

据邮报报道

我可以将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();
而且在Chrome上运行良好,但当我尝试IE-11时,我得到了一个斑点


您知道如何使其独立于浏览器工作吗?

不用担心使用对象URL,IE中并不完全支持它们。建议使用,然后一旦你有了blob,以下应该适用于任何相关的浏览器:

function saveBlob(){
    var theBlob = //... your stuff here
    saveAs(blob, 'file.csv');
}
从你的主播那里叫它:

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

漂亮的库。在任何情况下,对于IE10,它基本上调用
navigator.msSaveOrOpenBlob(blob,name)