Javascript 创建一个Blob并在浏览器中用所需的URL打开它
我编写了以下代码,使用blob创建一个文件,并在浏览器(Chrome)中自动打开(而不是下载) JSfiddle: 文件在新浏览器窗口中成功打开,如下所示: blob:http%3A//fiddle.jshell.net/83999d68-4d79-4a06-a83d-e40a8b1f9681 但我想在我指定的url中打开它。比如说 blob:http%3A//fiddle.jshell.net/exapmle.txtJavascript 创建一个Blob并在浏览器中用所需的URL打开它,javascript,html,blobs,Javascript,Html,Blobs,我编写了以下代码,使用blob创建一个文件,并在浏览器(Chrome)中自动打开(而不是下载) JSfiddle: 文件在新浏览器窗口中成功打开,如下所示: blob:http%3A//fiddle.jshell.net/83999d68-4d79-4a06-a83d-e40a8b1f9681 但我想在我指定的url中打开它。比如说 blob:http%3A//fiddle.jshell.net/exapmle.txt 您不能自定义blob URLsOk,谢谢。有没有什么办法可以摆脱像…/839
您不能自定义blob URLsOk,谢谢。有没有什么办法可以摆脱像…/83999d68-4d79-4a06-a83d-E40A8B1F9681这样丑陋的url结尾?当然,你可以在将窗口的url设置为对你或你的用户有意义的内容后立即调用例如
history.replaceState(0,0,“/myFancyPath/FacyFile.ext”)
。你能用JSFIDLE显示这个解决方案吗?谢谢
var saveData = (function () {
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
return function (data, fileName) {
var json = JSON.stringify(data),
blob = new Blob([json], {type: "text/html"}),
url = window.URL.createObjectURL(blob);
window.open(url);
window.URL.revokeObjectURL(url);
};
}());
var data = { x: 42, s: "hello, world", d: new Date() },
fileName = "my-download.json";
saveData(data, fileName);