我有一个带有 HTML/JavaScript 代码的页面,当用户按下页面上的导出按钮时,我想将其导出到 HTM 文件。我基本上只需要找到一种方法来触发Ctrl+S来执行 Save Page 对话框窗口。我已经搜遍了,似乎找不到任何可以让 JavaScript 模拟该按键序列的东西。
TL:DR - 有谁知道如何在 JavaScript/jQuery 中模拟CTRL+S按键
我有一个带有 HTML/JavaScript 代码的页面,当用户按下页面上的导出按钮时,我想将其导出到 HTM 文件。我基本上只需要找到一种方法来触发Ctrl+S来执行 Save Page 对话框窗口。我已经搜遍了,似乎找不到任何可以让 JavaScript 模拟该按键序列的东西。
TL:DR - 有谁知道如何在 JavaScript/jQuery 中模拟CTRL+S按键
使用saveDocument()
方法。文档在这里。
编辑:这只适用于 Firefox。
我不认为 Javascript 可以做到这一点。有些东西可以打印,但不能保存。
您可以为浏览器创建文件是附件的提示。
您需要发送一些 HTTP 标头。例如,您可以使用 PHP 执行此操作:
header('Content-disposition: attachment');
如果您不想使用 PHP,也许 .htaccess 也可以。你可以查一下。
如果您希望浏览器在 DOM 中保存用户页面的更改,这可能超出了 JavaScript 的范围,JavaScript 旨在提供与页面本身的交互,而不是与它所在的环境进行交互。
在某些设备上,这甚至可能不适用——在 Android 浏览器中保存页面并不那么简单,也不总是可行。
不过,如果您只是在为多个桌面浏览器寻找可行的解决方案,您可以查看TiddlyWiki,它是一种“本地 wiki”,其内容保存在客户端并与页面一起保存。保存是在随页面分发的Java(不是 JavaScript! )小程序中实现的。一种基于 Web 的基于浏览器的应用程序。