javascript - 使用 JavaScript 创建和保存文件

标签 javascript file dialog save

我有想要写入文件的数据,并打开一个文件对话框供用户选择保存文件的位置。如果它可以在所有浏览器中运行,那就太好了,但它必须在 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/

相关文章:

java - 如何拆分包含两个日期的文本行

javascript - 具有不同内容的 JQuery 可重用对话框

javascript - 我怎样才能有一个带有标题的确认对话框,在 "OK"和 "Cancel"事件上返回 true/false?

javascript - 尽管有 JavaScript,但单击下拉菜单会关闭它

javascript - ANGULARJS - 仅在提交时验证

c++ - 检查文件是否稀疏

javascript - 如何有效地检查 url 是否有效(实际加载包含内容的页面)?

c - fgetc() 和 fgets() 之间的区别?

Android webView - 如何更改 webView 对话框的背景颜色?

jQuery 警报框