我知道客户端的JavaScript由于明显的安全原因无法将数据写入本地文件系统。
似乎使用cookie、localStorage
或允许用户下载文件(通过"保存..."对话框或浏览器默认下载文件夹)是JavaScript保存数据到本地的唯一方式。
但是,在特定情况下,当文件通过类似file:///D:/test/index.html
这样的本地URL进行访问时(而不是通过Internet),是否有可能在本地浏览HTML文件时写入数据?(不需要任何服务器语言,甚至没有任何服务器:只是本地浏览HTML文件)
例如,点击这里的保存按钮,是否可能:
<div contenteditable="true" style="height:200px;">Content editable - edit me and save!</div>
<button>Save</button>
如何才能使HTML文件(通过file:///D:/test/index.html
访问)被其新内容覆盖?(即在按下SAVE时应更新本地HTML文件)。
TL;DR:当通过本地方式访问HTML页面时,是否可能通过Javascript保存文件?
注:我想要能够静默保存,而不是提供一个下载/保存对话框,在该对话框中,用户必须选择下载位置,然后出现"您确定要覆盖吗"等提示。
编辑:为什么问这个问题?因为我正在制作一个浏览器内记事本,可以在本地运行,无需任何服务器(没有Apache,没有PHP)。我需要能够轻松保存,而无需处理“在哪里下载文件?”对话框,并且总是重新浏览到同一文件夹以覆盖当前正在编辑的文件。我希望有一个简单的UX,就像任何记事本程序一样:CTRL+S完成,当前文件已保存!(例如:MS Word不会在每次执行“保存”操作时都要求浏览文件保存位置:CTRL+S完成!)