在客户端的Chrome浏览器上使用JavaScript创建一个文件。
Chrome不再支持通过导航到data URI来创建文件,因此导致了这个问题的出现。
解决方法是使用Blob对象和URL.createObjectURL()方法来创建和下载文件。具体的解决方法可以参考stackoverflow的这个链接:stackoverflow.com/a/23956661/945687。
这个问题的解决方法主要涉及到两个方面的知识点:一是Chrome不再支持通过导航到data URI来创建文件,需要使用Blob对象和URL.createObjectURL()方法来创建和下载文件;二是IE有API用于保存Blob对象,而Chrome和Firefox则可以通过data URI来创建文件。
希望这篇文章对你了解这个问题的原因和解决方法有所帮助。
问题的原因是在Chrome浏览器上使用JavaScript创建文件时无法设置下载文件的文件名,默认为“download”而没有扩展名。解决方法是使用download
属性来设置下载文件的文件名,该属性在Chrome浏览器上有效,允许您使用任何文件名下载任何内容。
以下是解决方法的示例代码:
data='<a href='data:text;charset=utf-8,'+uriEncode(yourUSERdataToDownload)+' download=yourFileName.txt>Your Download</a>
您可以将以上代码注入到DOM中,供用户点击下载。
通过使用download
属性,您不再需要进行消息传递或尝试使用各种已弃用的API。感谢这个方法的简洁易用。
此外,您还可以尝试window.location = "mailto:someone.com?Subject=Hello%20again"
来发送电子邮件。
通过以上方法,您可以在Chrome浏览器上使用JavaScript在客户端创建文件并设置下载文件的文件名。