如何在Javascript中模拟“CTRL + S”按键

How can I simulate "CTRL +S" keypress in Javascript

本文关键字:CTRL 按键 模拟 Javascript      更新时间:2023-09-26

我有一个包含HTML/JavaScript代码的页面,当用户按下页面上的导出按钮时,我想导出到HTM文件。我基本上只需要找到一种方法来触发 Ctrl+S 来执行"保存页面"对话框窗口。我已经搜索了所有内容,似乎找不到任何允许 JavaScript 模拟该按键序列的东西。

TL:DR - 有谁知道如何在JavaScript/jQuery中模拟CTRL + S按键

使用 saveDocument() 方法。 文档在这里。

编辑:这仅适用于火狐浏览器。

我不认为Javascript可以做到这一点。有一些东西可以打印,但不能保存。

您可以做什么,您可以为浏览器创建一个提示,表明该文件是附件。
您需要发送一些 HTTP 标头。例如,你可以用PHP来做到这一点:

header('Content-disposition: attachment');

如果你不想使用PHP,也许.htaccess也可以工作。你可以查一下。

如果您希望浏览器保存用户的页面以保留DOM中的更改,这可能超出了JavaScript的范围,JavaScript旨在提供与页面本身的交互,而不是它的工作环境。

在某些设备上,这甚至可能不适用 - 在Android浏览器中保存页面并不是那么简单,并不总是可能的。

不过,如果您只是在寻找适用于多个桌面浏览器的工作解决方案,您可以查看 TiddlyWiki,这是一种"本地维基",其内容保存在客户端并与页面一起保存。保存是在与页面一起分发的Java而不是JavaScript!)小程序中实现的。一种基于 Web 的基于浏览器的应用程序。