是否可以停止从打印预览中复制文本?

时间:2019-05-15 09:16:33

标签: javascript jquery html5 css3

我正试图阻止用户在打印屏幕上时选择和复制文本。

我使用此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打印网页并进入打印选项屏幕时,以上代码均无法在该屏幕上运行

stop text selection and copy on this print screen

3 个答案:

答案 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 */
  }
}