如何在Javascript中捕获屏幕截图事件?

4

我正在编写一个涉及敏感内容的网络应用程序。已经防止了复制和粘贴。我如何检测某人按下printscreen键,以便在该键被按下时隐藏数据?

不必担心移动电话/相机/屏幕录制软件,因为它们在该环境中不会使用。


2
我认为没有任何方法可以做到那一点。而且,打印屏幕是一个操作系统过程,你应该考虑在用户的操作系统中禁用该键。 - linuxeasy
打印屏幕键取决于您的操作系统。例如,Mac根本没有它,Linux与Windows实现方式也不同 - 还有其他屏幕截图方法和工具,因此您永远不会真正安全。我的意思是我可以用笔写下来。或者我可以保存页面。 - RiquezJP
2
即使您可以,用户仍然可以使包含敏感内容的窗口失去焦点,然后进行屏幕截图。 - Eleeist
1
或者用户可以禁用JavaScript。这些事情是无法控制的。 - dtbarne
1个回答

5
简短回答是,您无法可靠地检测或干扰打印屏幕功能。这不是浏览器功能,而是用户系统的功能,因此在大多数情况下,事件发生在您尝试检测它的环境之外。HTML、CSS或JavaScript都无法侦听事件,也不能以可靠的方式阻止其默认操作。您应该重新考虑保护内容的策略,并接受现实,无论您做什么,总会有人可以“窃取”它。
编辑:我想,您可以编写一个Java小程序来检测打印屏幕事件的触发,因为Java可能可以访问系统事件。但我没有费心去研究如何做到这一点,因为该功能取决于两个因素-用户在其浏览器中安装和启用了Java,并且Java小程序具有被授权去搜寻系统事件的安全权限。
仅供参考:https://stackoverflow.com/a/29965963/4933137

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