如何禁止打印页面

解决思路:

要真正禁止打印页面是办不到的,但是如果能设置让用户打印到的是空白,也算是实现禁止打印的目的了。
具体步骤:
代码示例:

  1. <html>
  2. <head><title>不可打印的页面</title>
  3. <style>
  4. @media print{
  5. body{display:none}
  6. }
  7. </style>
  8. </head>
  9. <body>
  10. 文档主要内容
  11. </body>
  12. </head>

注意:@media print{}规则中所定义的CSS仅对打印时的页面生效。
技巧:在很多论坛中在打印帖子时都是用一个专门的页面来实现,如果能熟练运用@media print{}规则,就不用单独做一个打印用的页了。
提示:
@media print{}规则中可以用来代码print的还有all和screen。
类似@media的规则如表2.2.1所示。

规则说明
@import指定导入的外部样式表及目标媒体。该规则必须在样式表头部最先声明
@charset在外部样式表文件内使用。指定该样式表使用的字符集。
@font-face设置嵌入HTML文档的OpenType字体(需IE5+支持)
@media指定样式表规则用于指定的媒体类型(需IE5.5+支持)

特别提示
运行本例代码,然后打印网页,打印结果将不包括”文档主要内容”。

特别说明

本例主要运用了@media规则来定义页面对于打印时应用的样式,print意思是所定义的CSS应用于打印机,类似的print媒体类型还有:
all 应用于所有类型的设备
screen 应用于计算机的显示器

禁止选取,禁止右键,禁止拷贝

  1. <BODY onselectstart="return false" oncopy="return false;" oncut="return false;" oncontextmenu="window.event.returnValue=false" >

1.oncontextmenu=”window.event.returnValue=false” 将彻底屏蔽鼠标右键
2.onselectstart=”return false” 取消选取、防止复制
3.onpaste=”return false” 不准粘贴
4.oncopy=”return false;” oncut=”return false;” 防止复制

禁止Ctrl+P

  1. <!--
  2. function fKey(){
  3. var keycode = event.keyCode;
  4. if(event.ctrlKey && keycode == 80){
  5. alert("此功能已禁止.");
  6. return false;
  7. }
  8. }
  9. //-->
  10. </script>

body中添加 onkeydown=”return fKey();”