我有想要写入文件的数据,并打开一个文件对话框供用户选择保存文件的位置。如果它可以在所有浏览器中运行,那就太好了,但它必须在 Chrome 中运行。我想在客户端做这一切。
基本上我想知道在这个函数中放什么:
saveFile: function(data)
{
}
函数在哪里接收数据,让用户选择一个位置来保存文件,并在该位置创建一个包含该数据的文件。
如果有帮助的话,使用 HTML 也可以。
最佳答案
Awesomeness01 对代码进行了非常小的改进(不需要 anchor 标签)根据 trueimage 的建议添加(支持 IE):
// Function to download data to a file
function download(data, filename, type) {
var file = new Blob([data], {type: type});
if (window.navigator.msSaveOrOpenBlob) // IE10+
window.navigator.msSaveOrOpenBlob(file, filename);
else { // Others
var a = document.createElement("a"),
url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function() {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
}
经测试可在 Chrome、FireFox 和 IE10 中正常运行。
在 Safari 中,数据会在新选项卡中打开,因此必须手动保存此文件。
关于javascript - 使用 JavaScript 创建和保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13405129/