Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何阻止用户打印网页?使用javascript或jquery_Javascript_Jquery_Css - Fatal编程技术网

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

如何阻止用户打印网页?使用javascript或jquery,javascript,jquery,css,Javascript,Jquery,Css,我们如何阻止用户使用不同的方法打印网页 禁用右键单击 禁用CtrlP组合键 右键单击->打印 有没有办法停止打印网页 我们可以使用javascript处理这3个事件吗。 或者我们可以说。如果用户将执行这些事件中的任何一个。然后我想运行我的其他代码。这可能吗?用户机器上的网页不受您的控制。用户可以做他或她想做的任何事情,但是您可以提供PDF并禁用打印该PDF。不过,如果我必须打印一些东西,我会找到一种方法来打印它。你不能。别浪费时间了 一旦用户将您网站的数据下载到他的计算机上,您就再也无法控制它了

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

  • 禁用右键单击
  • 禁用CtrlP组合键
  • 右键单击->打印
  • 有没有办法停止打印网页


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

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

    你不能。别浪费时间了


    一旦用户将您网站的数据下载到他的计算机上,您就再也无法控制它了。如果你不想让用户随心所欲地使用它,就不要把它放在公共网站上。

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

    <style type="text/css" media="print">
        body { visibility: hidden; display: none }
    </style>
    
    
    正文{可见性:隐藏;显示:无}
    

    但这并不能保证有效,而且如果你对自己正在做的事情有一个模糊的概念,你也很容易找到解决办法。

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

    即使是Aviary等浏览器插件也会抓取浏览器的屏幕截图并将其复制到内存中,所以您无法阻止这种情况的发生。用户可以直接从photoshop或paint.net等进行打印


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

    如果您在用户的浏览器上呈现某些内容,它将由用户控制。您无法阻止用户打印

    如果您希望向用户显示某些信息,但又不希望用户能够打印,则可以使用类似PDF的格式,并保护其不被打印


    您的用法是什么?

    将此类块添加到CSS中

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

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

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

    我知道这个问题很久以前就被问到并回答了,但我遇到了它,觉得我应该投入2美分。我有一个程序,里面有一些版权信息,我们希望最终用户不能打印这些信息,所以我创建了一个单独的div,我给了类
    .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
    }
    
    .printable{display:none;}
    @仅媒体打印{
    
    .container{display:none!important;}我试过克里斯的这种方法

    @media only print {
    .container { display:none !important; }
    }
    
    这是工作。 但当我按F12键打开开发者工具时,找到“.container{display:none!important;}”行删除它,然后按ctrl+p,所有内容都会再次显示在打印窗口上。
    可能没有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>
    
    
    这是我的内容

    函数abortPrint() { 警告(“不允许打印”); document.write(); }
    这将只打印空白页面,而您的内容将不会被打印。但只有这样,在这种帮助下,您才能停止用户打印页面


    回答建议总是很受欢迎。

    即使有PDF no print标志,也只适用于符合要求的PDF阅读器。一个足够成熟的用户无论如何都不会有打印问题。+1 yeeeah我喜欢Mad Max part,“……用户的机器不受您的控制。”这是为了让诚实的用户保持诚实。在我的情况下,我们要求我们的用户不要这样做o打印。他们可能会忘记或错过消息。因此,阻止“正常”的打印尝试是我们所需要的。他们不会特意绕过基本的预防级别。我注意到,每当用户询问如何阻止人们复制其内容时(阻止复制/粘贴、阻止打印)答案是,你总能找到办法禁用系统来阻止复制。但是99%的网站用户(和我的100%的用户)你的技术水平不足以进入开发工具来禁用阻止打印页面的样式标记。你必须认识到,阻止大多数用户访问paywall网站托管昂贵的制作内容对某些人(比如我)来说极其重要,否则我的用户会和他们的朋友分享,我们也会被毁掉。我真的很想听听这个请求的理由。@roXon好的,我收回我所有的怨言。伟大的事业!:D@Gourav您忘记了File>Print.FYI,有很多printscreen程序可以轻松地截取整页的屏幕,然后打印出来。@roXon-hehe+1@roxon,在用户机器上下载一个间谍软件/病毒并烧掉硬盘。无需打印。我们可以使用javascript处理这3个事件吗。或者我们可以说。如果用户将执行这些事件中的任何一个。那么我想运行我的其他代码。这可能吗?这只在用户尝试使用浏览器的打印功能打印之前有效。类似Fireshot c的工具可以将页面捕获为图像,并且可以毫无问题地打印。当然,您无法保护此类情况。用户还可以使用您知道的摄像头捕获屏幕。这仅在用户尝试使用浏览器的打印功能打印之前有效。Fireshot之类的工具可以捕获页面