如何在所有浏览器中禁用网页的打印屏幕功能?

时间:2011-05-09 14:41:54

标签: javascript html document-body

使用以下内容,我们可以在Internet Explorer中禁用打印屏幕或屏幕截图:

<body onload=setInterval("window.clipboardData.setData('text','')",2) 

oncontextmenu="return false" onselectstart="return false">

但这些在Mozilla,Chrome和其他浏览器中无效。

有没有更好的方法来禁用打印屏幕/屏幕截图?

5 个答案:

答案 0 :(得分:22)

是什么让你认为人们应该能够截取屏幕截图是你的决定?

幸运的是没有浏览器,但是IE允许你通过JavaScript访问剪贴板,所以你运气不好:)

顺便说一句,如果我访问了你的网站,它搞砸了我的剪贴板(它会覆盖那里的任何内容,即使它与你的网站无关) - 我可能已经存储了一些我刚从某个文件剪切的内容我打算粘贴到另一个文件中,感谢您的网站,现在它将丢失。

所以,结论是:停止这样的垃圾。

答案 1 :(得分:0)

如果您要提供一些您稍后想要出售给客户的样品,那么您可以做的一件事是使用“受版权保护的材料”的图像并将其用作网页上的背景,如水印。在I.E.中,可以禁用文本选择,上下文菜单和使用CTRL + A进行复制。和Chrome,虽然我现在忘记了我是如何做到这一点的(它是一个CSS解决方案,而且非常简单)。无论如何,这是可以做的一件事 - 如果你不能保护它,破坏它以使它无法使用。股票图像网站通过水印他们的图片使用这种方法,可以在websites服务器端使用php等实现。

答案 2 :(得分:-1)

这是一个操作系统功能,以及页面功能和打印功能,因此您需要做一些事情 - 以下步骤特定于 Windows,但可以在任何操作系统中实现。同一个概念-

  1. 在操作系统中禁用打印屏幕级别
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

答案 3 :(得分:-3)

尝试onKeyPress捕获PrtScr按钮,然后返回false。它不漂亮,但我认为这样可行。

答案 4 :(得分:-6)

window.addEventListener("keyup",kPress,false);
function kPress(e)
{ 
var c=e.keyCode||e.charCode; 
if (c==44) alert("print screen");
}