JavaScript如何检测用户保存网页?

6

JavaScript能否检测用户在本地磁盘上保存网页的操作?或者其他客户端脚本中是否有类似功能?


2
你最好的选择可能是捕获 CTRL-s。你为什么想要这个? - Ruan Mendes
我看不出为什么有人想要这样做...? - Christoph
1
人们还会保存网页吗? - user2752467
这是一个使用案例的例子:我正在使用 JS 注释本地 HTML 文件,并且需要保存文件以保存注释。如果文件尚未保存,我想在关闭页面之前得到警告。 - tarulen
4个回答

6

您可以查看触发键盘组合 ctrl + s 的关键命令。但是,如果用户选择通过菜单保存,就无法捕获该操作。


1

正如其他人已经说明的那样; 通过CTRL + S,而不是通过菜单命令

下面是一些jQuery代码,说明了如何捕获按键:

$(document).keydown(function(e) {
    if (e.key === "s" && e.ctrlKey) {
        alert("user saved page");
    }
});

1
JavaScript无法做到这一点,也没有其他客户端语言可以做到。事实上,没有任何服务器端语言能够做到这一点。正如其他人所说,你可以监听键盘组合键,但目前还没有检测到的方法。

1
它不能 - 也许一些浏览器扩展可以做到,但是对于随机用户来说,期望他们为此安装这些扩展是非常不切实际的。但是你可以尝试其他方法:右键点击自定义功能 - 启用保存自定义保存页面(在登录后端时),捕获CTRL + s(如Juan Mendes所述),在页面上设置某种跟踪,仅当页面不通过您的域名访问时触发(例如,在您的服务器上请求的图像只有在特定条件下才会请求)...提供PDF文档以保存并测量其请求(通过后端方法)...总之,没有100%的解决方案...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接