我正在使用纯Javascript编写文本编辑器.我希望这样当用户点击"保存"按钮时,编辑器会下载该文件.我已经部分工作了:
uriContent = "data:application/octet-stream," + encodeURIComponent(codeMirror.getValue());
newWindow=window.open(uriContent, 'filename.txt');
Run Code Online (Sandbox Code Playgroud)
该文件下载,但问题是该文件名为"download".
问题:如何将文件名更改为我想要的任何内容,例如filename.txt?
Art*_*ens 27
用锚链接替换"保存"按钮并download动态设置新属性.适用于Chrome和Firefox:
var d = "ha";
$(this).attr("href", "data:image/png;base64,abcdefghijklmnop").attr("download", "file-" + d + ".png");
Run Code Online (Sandbox Code Playgroud)
这是一个名称设置为当前日期的工作示例:http://jsfiddle.net/Qjvb3/
这里是download属性的兼容性表:http://caniuse.com/download
小智 16
function saveAs(uri, filename) {
var link = document.createElement('a');
if (typeof link.download === 'string') {
document.body.appendChild(link); // Firefox requires the link to be in the body
link.download = filename;
link.href = uri;
link.click();
document.body.removeChild(link); // remove the link when done
} else {
location.replace(uri);
}
}
Run Code Online (Sandbox Code Playgroud)
使用这样的filename属性:
uriContent = "data:application/octet-stream;filename=filename.txt," +
encodeURIComponent(codeMirror.getValue());
newWindow=window.open(uriContent, 'filename.txt');
Run Code Online (Sandbox Code Playgroud)
编辑:
显然,没有可靠的方法来做到这一点.请参阅:使用数据时是否有任何方法可以指定建议的文件名:URI?