保存文件与文件名的Javascript
我正在使用纯Javascript编写文本编辑器。 我喜欢这样,当用户点击“保存”button时,编辑器会下载文件。 我已经有这个部分工作:
uriContent = "data:application/octet-stream," + encodeURIComponent(codeMirror.getValue()); newWindow=window.open(uriContent, 'filename.txt'); 文件下载,但问题是该文件被命名为“下载”。
  问题 :如何将文件的名称更改为我想要的内容,例如filename.txt ? 
 用锚点链接replace您的“保存”button,并dynamic设置新的download属性。 适用于Chrome和Firefox: 
 var d = "ha"; $(this).attr("href", "data:image/png;base64,abcdefghijklmnop").attr("download", "file-" + d + ".png"); 
下面是一个工作示例,其名称设置为当前date: http : //jsfiddle.net/Qjvb3/
 这里有一个download属性的兼容表: http : //caniuse.com/download 
 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); } } 
 使用filename属性,如下所示: 
 uriContent = "data:application/octet-stream;filename=filename.txt," + encodeURIComponent(codeMirror.getValue()); newWindow=window.open(uriContent, 'filename.txt'); 
编辑:
显然,没有可靠的方法来做到这一点。 请参阅: 使用data:URI时是否有任何方法来指定build议的文件名?