跨浏览器是否可以将文件另存为按钮?

use*_*132 5 javascript html5 storage persistent

我正在开发一个客户端音乐播放器,我正在寻找一种方法来保存完整的mp3数据播放列表.

localStorage localStorage规则的5mb限制该选项输出.我想知道还有什么其他选择.

DataURIs 我读过有关dataURIs的内容,例如, 在使用数据时,有没有办法指定建议的文件名:URI?跨浏览器另存为.txt 但不建议默认文件名,特别是缺乏IE支持是dealbreakers.

IndexedDB HTML5 indexedDB和持久性生存期表明IndexedDB不是持久存储的选项.

我有缺少的选择吗?希望如此!

谢谢,安德鲁

use*_*132 4

我现在有一个适用于 IE、Chrome 和 Firefox 的解决方案,灵感来自于:Javascript set file in download

IE10+解决方案使用msSaveBlob,代码为:

if (navigator.msSaveBlob) {
    var blob_object = new Blob([store_string], {type: mime_type});
    return navigator.msSaveBlob(blob_object, filename);

    }
Run Code Online (Sandbox Code Playgroud)

对于 Chrome/Firefox,它使用 download 属性:

else if ('download' in a) {
    blob_object = new Blob ([store_string], {type: mime_type});
    a.href = URL.createObjectURL(blob_object);
    a.setAttribute("download", filename);
    a.innerHTML = "downloading...";
    d.body.appendChild(a);
    setTimeout(function() {
        a.click();
        d.body.removeChild(a);
    }, 66);
    return true;    
}
Run Code Online (Sandbox Code Playgroud)

我还没有研究过 Safari、Opera 或任何移动浏览器...