如何设置一个blob文件在JavaScript的名称时,强制下载它通过window.location?
function newFile(data) {
var json = JSON.stringify(data);
var blob = new Blob([json], {type: "octet/stream"});
var url = window.URL.createObjectURL(blob);
window.location.assign(url);
}
运行上面的代码立即下载一个文件,而不需要页面刷新,如下所示:
bfefe410-8d9c-4883-86c5-d76c50a24a1d
我想把文件名设为my-download。json。
我只是想扩展对Internet Explorer(无论如何,大多数现代版本)的支持,并使用jQuery整理代码:
$(document).ready(function() {
saveFile("Example.txt", "data:attachment/text", "Hello, world.");
});
function saveFile (name, type, data) {
if (data !== null && navigator.msSaveBlob)
return navigator.msSaveBlob(new Blob([data], { type: type }), name);
var a = $("<a style='display: none;'/>");
var url = window.URL.createObjectURL(new Blob([data], {type: type}));
a.attr("href", url);
a.attr("download", name);
$("body").append(a);
a[0].click();
window.URL.revokeObjectURL(url);
a.remove();
}
这里有一个例子。祝成功。