繁体   English   中英

如何阻止用户打印网页? 使用 javascript 或 jquery

[英]How to stop user from printing webpages? using javascript or jquery

我们如何阻止用户使用不同的方法打印网页?

  1. 禁用右键单击
  2. 禁用Ctrl P组合键
  3. 右键单击->打印

有什么办法可以停止打印网页?

我们可以使用 javascript 来处理这 3 个事件吗? 或者我们可以说。 如果用户将执行任何这些事件。 然后我想运行我的其他代码。这可能吗?

用户机器上的网页不受您的控制。 用户可以做他或她想做的任何事情,但是您可以提供 PDF 并禁用 PDF 的打印。 不过,如果我必须打印一些东西,我会找到一种方法来打印它。

如前所述,您不能这样做。 但是,一个常用的技巧是尝试隐藏所有正在打印的页面内容:

<style type="text/css" media="print">
    body { visibility: hidden; display: none }
</style>

但这并不能保证有效,如果您甚至对自己在做什么有一个模糊的想法,也很容易解决。

我知道很久以前有人问过这个问题并得到了回答,但我遇到了它,觉得我应该投入 2 美分。我有一个程序,其中包含一些版权信息,我们希望最终用户不是能够打印这些信息,所以我所做的是创建一个单独的 div,我给了 class .printable

我将这些行添加到 CSS 表中

.printable { display:none; }
@media only print {
    .container { display:none !important; } <-- This is the wrapper container for all of the site data
    .printable { display:block !important; } <-- This is my added printable container with a message about not printing the page
}

随着主要浏览器中新的 CSS 引擎的改进,即使他们执行右键单击 + 打印,它也会显示.printable框而不是内容。

然而,有人指出,如果用户真的想打印信息,没有办法阻止用户使用屏幕捕获软件打印信息。 我们认为,通过阻止打印,我们将阻止大约 99% 的人,否则他们可能会打印信息。

所以这是我的 2 美分......希望它可以帮助某人

你不能 别再浪费时间了。

一旦用户将您网站的数据下载到他的计算机上,您就无法再控制它了。 如果不希望用户为所欲为,就不要放在公众号 web 上。

将这样的块添加到您的 CSS

@media print {
  body {
    display: none;
  }
}

这应该在打印时隐藏所有内容。

没有可靠的方法来做到这一点。 您可以拦截某些按键等并使用脚本取消它们,但是当用户禁用脚本时,就没有预防措施了。 此外,打印功能内置于实际浏览器本身中,您实际上无法阻止这一点。

甚至像 Aviary 这样的浏览器插件也会抓取浏览器的屏幕截图并将其复制到 memory 中,因此您将无法阻止这种情况发生。 然后用户可以从 Photoshop 打印或绘制 .net 等。

我建议您尝试的唯一方法是您可以仅包含 print.css 样式表。 在该样式表中,您可能希望尝试将任何敏感内容设置为 display:none。 但是,即使这样也不能保证,因为用户可以简单地禁用样式表。

我不会反对用户的期望。 不要更改默认行为。

我试过这种方式的克里斯

@media only print {
.container { display:none !important; }
}

这是工作。 但是当我按F12打开开发者工具时,找到“.container { display:none;important, }”这行删除,然后ctrl + p。 每件事都在打印 windows 上再次显示。 对于防止打印网页内容,可能没有 100% 的解决方案。

无法阻止 web 用户打印您的网页。 但是是的,您可以设置打印处理后要打印的内容。 我的意思是简单地编写如下代码:

<!DOCTYPE html>
<html>
    <body onbeforeprint="abortPrint()">
        <p>This is my Content</p>

        <script>    
            function abortPrint()
            {
                alert("Printing is not allowed");
                document.write();
            }
        </script>
        
    </body>
</html>

这只会打印空白页,您的内容将不会被打印。 但这只有借助此方法才能阻止用户打印页面。

建议回答总是受到赞赏。

如果您将某些内容呈现到用户的浏览器上,它就会在用户的控制之下。 您无法抗拒用户打印。

如果您希望向用户显示某些信息,并且不希望用户能够打印,您可以使用 PDF 之类的东西并保护它不被打印。

你的用途是什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM