Javascript 我可以使BLOB独立于浏览器工作吗?
据邮报报道 我可以将js中的变量(比如用户填写的表单)下载到浏览器中的文件中 (我知道这不是解决问题的办法,服务器必须为我的请求这样做) 我正在使用以下代码: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;
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)
。