使用以下内容,我们可以禁用 Internet Explorer 中的打印屏幕或屏幕截图:
<body onload=setInterval("window.clipboardData.setData('text','')",2)
oncontextmenu="return false" onselectstart="return false">
但这些在 Mozilla、Chrome 和其他浏览器中不起作用。
有没有更好的方法来禁用打印屏幕/屏幕截图?
使用以下内容,我们可以禁用 Internet Explorer 中的打印屏幕或屏幕截图:
<body onload=setInterval("window.clipboardData.setData('text','')",2)
oncontextmenu="return false" onselectstart="return false">
但这些在 Mozilla、Chrome 和其他浏览器中不起作用。
有没有更好的方法来禁用打印屏幕/屏幕截图?
是什么让您认为人们是否应该能够截屏是您的决定?
幸运的是没有浏览器,但 IE 允许您通过 JavaScript 访问剪贴板,所以您不走运:)
顺便说一句,如果我访问了您的网站并且它弄乱了我的剪贴板(它会覆盖那里的任何内容,即使它与您的网站无关) - 我可能已经在其中存储了一些我刚刚从某个文件中剪切的内容,我是将粘贴到不同的文件中,并且由于您的站点,它现在会丢失。
所以,结论是:停止那样做废话。
它是一个操作系统功能、一个页面功能和一个打印功能,因此您需要做一些事情 - 以下步骤特定于 Windows,但是可以在具有相同概念的任何操作系统中实现 -
Here are the steps of disable Print Screen key:
1.Copy the following registry to notepad and saved as a .reg file.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,00,00,2a,e0,00,00,37,e0,\
00,00,54,00,00,00,00,00
2.Apply the registry
3.Sign out and sign in again.
然后,在 chrome 或 edge 或 firefox 具有增强打印屏幕的扩展程序的情况下,您需要阻止浏览器捕获屏幕的功能 - 另外,请禁用右键单击(我将其放在文档上,但您可以将其放在每个 DOM
document.addEventListener('contextmenu',
event => event.preventDefault());
window.addEventListener("keyup",kPress,false);
function kPress(e)
{
var c=e.keyCode||e.charCode;
if (c==44) event.preventDefault();
}
然后作为额外的,要禁用打印和项目,您需要将打印媒体标记为不显示
@media print {
.noprint {
visibility: hidden;
}
}
如果您想符合 POPIA/GDPR,您必须禁用诸如 pdf 下载、对象引用之类的东西作为奖励项目,使用 PDF.js 将 pdf 呈现为 html 并完全控制 PDF 的呈现,使用上述下载和打印
此参考允许输入密码,并成功让我们完全控制从受保护站点捕获或保存信息的所有功能
https://usefulangle.com/post/22/pdfjs-tutorial-2-viewing-a-password-protected-pdf
尝试onKeyPress
抓住 PrtScr 按钮,然后返回 false。这不漂亮,但我认为这会奏效。
window.addEventListener("keyup",kPress,false);
function kPress(e)
{
var c=e.keyCode||e.charCode;
if (c==44) alert("print screen");
}