我正试图阻止用户在打印屏幕上时选择和复制文本。
我使用此CSS禁用选择。
.disable-select {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Chrome/Safari/Opera */
-khtml-user-select: none; /* Konqueror */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently supported by any browser but < IE9 */
}
<body class="disable-select">
...
</body
此jquery可以防止在我的网页中复制,粘贴和右键单击选项
$(document).bind('contextmenu cut copy', function (e) {
e.preventDefault();
});
它可以在网页上运行,但是当我们按ctrl + p打印网页并进入打印选项屏幕时,以上代码均无法在该屏幕上运行
答案 0 :(得分:1)
不可能影响打印预览。您可以take a look here
但是您可以防止人们在打印页面上完全看到该文本。 像这样:
.disable-select {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
@media print{
.disable-select{
display:none
}
}
修改
有一种方法可以实现,更多的是类似的技巧,而不是适当的CSS功能,但是它仅在现代浏览器中有效。
显然,使用CSS过滤器将阻止用户在打印预览中选择文本
@media print{
.disable-text{
filter:grayscale(100%)
}
}
CSS Filter compatibility table
编辑2
还要在打印方案中将固定元素的位置设置为相对。
@media print{
.disable-text{
filter:grayscale(100%)
}
.fixed-elements{
position: relative;
}
}
编辑3
另一种防止更改固定元素的解决方案是将 disable-text 类添加到HTML标记或要防止复制文本的特定div中。< / p>
答案 1 :(得分:0)
“您不能通过Web浏览器禁用屏幕抓取,只有在用户的PC上安装其他软件才可以。
有一些可用的IRM(信息权限管理)工具,例如通过保护Windows / DirectX API调用并监视视频内存(例如Oracle IRM或Microsoft的IRM技术)。
尤其可能是后者,因为还有Internet Explorer的权限管理插件。
但是正如其他人已经说过的那样,任何IRM / DRM技术都存在争议,您应该了解,它最经常会限制或惹恼您的用户。”
但是您可以尝试在剪贴板中复制其他内容,请查看下面的链接。
来源:Stop User from using "Print Scrn" / "Printscreen" key of the Keyboard for any Web Page
答案 2 :(得分:0)
您尝试过以下吗?
@media print {
.body{
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Chrome/Safari/Opera */
-khtml-user-select: none; /* Konqueror */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently supported by any browser but < IE9 */
}
}