如何防止用户对网页进行截屏?

27

可能是重复问题:
如何防止网页被截图?

我想防止用户截取网页的屏幕截图。 我应该放置在那个.html文件中的代码是什么?

如何防止类似打印屏幕的按钮按下? 因为许多网站会防止用户按任何键。


1
实际上,我听说有一种方法可以给图像添加“水印”,当您截屏时,它会呈现为黑色。如果您创建一个覆盖整个页面的div(width:100%; height:100%),并将其放置在具有透明背景的“水印”上,则不再可能对您的网站进行截屏。当然,任何使用firebug或chrome检查对象的人都可以简单地删除该div并像往常一样截屏。我想您可以在计时器中重新创建该div并混淆代码。但总的来说,没有办法使这完全不可能。 - Hoffmann
1
@Hoffmann 当在屏幕上激活其他应用程序窗口,然后按下“打印屏幕”键时怎么办? - Teemu
8
@Hoffmann如果你能看到屏幕上的内容,就抓取它。句号。 - Ben D
3
简单明了。不要发布任何值得盗取的内容。在我看来,大多数网站都采用这种技巧。 - FastAl
1
你也无法阻止他们用手机拍摄屏幕上的图片,或者用铅笔手写在纸上复制信息。 - Donal Fellows
显示剩余4条评论
3个回答

20
屏幕截图并非由Web浏览器控制,而是由运行在用户操作系统上的软件控制,无法被Web服务器远程控制。

15
不知何故,Netflix的基于浏览器的版本已经做到了这一点,即截屏只会显示黑色图像而没有内容。可能是由于播放器插件内置的功能,因此我猜这将取决于您的内容以及您是想屏蔽整个页面还是仅图片或其他部分。 - user5175034
是的,在Netflix的情况下,阻止它的不是浏览器,而是一个重型客户端,即“运行在用户操作系统上的软件”。那个软件碰巧是浏览器的插件,但它仍然是一种软件,而不是纯粹的网络。 - chrslg
HBO的Max流媒体服务还能屏蔽流媒体内容。即使你使用Web开发工具手动禁用JS和CSS,它也能正常运行,所以它一定是一个非常底层的图形插件。 - undefined
有关如何实施的任何更新吗? - undefined

9

这是可能的。尝试使用这个CSS3特性。

@media print {
    html, body {
       display: none;  /* hide whole page */
    }
}

112
这段代码不能防止截屏,但它可以通过禁用浏览器的打印功能来防止屏幕被打印。我认为将其标记为答案有误导性。 - Daniel Leiszen
9
这适用于print命令,而不是“打印屏幕”! - Chella
1
@Greg请不要编辑帖子以更改实际答案。如果您想发布该答案,请自己发布(在重复的目标上,因为这已关闭);不要将其编辑到其他人的答案中。 - Ryan M

0

您无法在Windows 7中阻止打印屏幕按钮或剪切工具,也无法在Mac OS中包含的Grab应用程序中阻止。


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