作者:Randy
原载:JS应用之禁止抓屏、复制、打印
版权所有,转载时必须以链接形式注明作者和原始出处及本声明

JS应用之禁止抓屏、复制、打印
项目需要禁止抓屏、复制、打印的要求,复制、打印做起来可能顺手一点网上各种各样的脚本俯首皆是。但抓屏怎么禁止?PrintScreen是一个特殊的键,它是没有keyCode的键,所以onkeydown变得毫无用处。不过换一种思路的话可会更好,我们从粘贴板着手采取曲线救国策略。代码如下:
<script language="javascript">
window.setInterval("clipboardData.setData('text','')",100);
</script>
以上代码是每100毫秒清空一次粘贴板操作。当页面加载时脚本程序就开始自动执行。但这样有个弊端,不管网页被最小化还是怎么的只要这个窗口开着我们电脑所有的复制操作都无法进行(脚本一直在清空粘贴板),从某种意义上讲是达到预期效果了,但有些欠佳:(。

我们知道所有的控件都有onfocus和onblur事件,window窗口也不例外。我们通过利用这两个事件,只有在当前窗口处于活动状态时才执行清空操作,否则停止执行。代码如下:
    <script language="javascript">
var interval
window.οnfοcus=function(){interval=window.setInterval("clipboardData.setData('text','')",100);}
window.οnblur=function(){window.clearInterval(interval);}
    </script>
这样就可以完美的解决这个问题。但对于不将截屏内容放入粘贴板的截屏程序来说此方法还是心有余而力不足的。
最新测试实践发现使用onfocus和onblur事件的方法也不尽如人意,当焦点指向程序页面内其他控件(即使Table)时,window将失去焦点从而触发onblur事件停止执行清空粘贴板命令,难道需要遍历所有控件为其onfocus和onblur绑定事件?有些迷茫与失望。
另window.onfocus只是document的onfocus,如果焦点在地址栏或菜单之类的地方onfocus也将失效。
仅以此文字记录自己半天时间研究JS的心得。

禁止打印只需将如果下样式代码放入程序即可(打印出的页面内容将为空白):
<style>@media print{body{display:none}}</style>

禁止复制、选择、右键菜单:
<script language=javascript>
function click() {
return false;}
function click1(){if (event.button==2) {return false; }}
function CtrlKeyDown(){
 if (event.keyCode==67&&event.ctrlKey)
 {
  clipboardData.setData('text','');
  return false;
 }
}
document.οnkeydοwn=CtrlKeyDown;
document.onselectstart=click;
document.οnmοusedοwn=click1;
</script>
<noscript><iframe src=*.html></iframe></noscript>
<script language=javascript>
<!--
if (window.Event)
document.captureEvents(Event.MOUSEUP);
function nocontextmenu(){
 event.cancelBubble = true
 event.returnValue = false;
 return false;
}
function norightclick(e){
if (window.Event){
 if (e.which == 2 || e.which == 3)
 return false;
}
else if (event.button == 2 || event.button == 3)
{
 event.cancelBubble = true;
 event.returnValue = false;return false;}
}
document.oncontextmenu = nocontextmenu; // for IE5+
document.onmousedown = norightclick; // for all others
//--></script>

以上代码在IE6.0环境运行正常。

转载于:https://www.cnblogs.com/Randy0528/archive/2008/02/15/1069412.html

JS应用之禁止抓屏、复制、打印相关推荐

  1. 银河麒麟禁止抓屏printScreen

    最近甲方提出这样一个要求,要求禁止截屏.当时一想:这不是系统按键吗,我怎么禁止呢? 研究发现printScreen该建没有键盘事件,没法从keydown和keyup准确控制. 而且麒麟电脑的print ...

  2. html 禁止选择与复制出现蓝色选中状态,禁止图片拖拽,隐藏鼠标,全屏状态下有效

    一.禁止选择与复制 js实现 ['contextmenu', 'selectstart', 'copy'].forEach(function(ev){document.addEventListener ...

  3. 页面禁止保存、复制、右键、查看源代码、下载、嵌套等【js禁用】【js屏蔽快捷键】

    <DOCTYPE html><html><head lang="en"><meta charset="UTF-8"&g ...

  4. web项目引入PDF.js并添加水印禁止下载

    目录 web项目引入PDF.js并添加水印禁止下载 下载并引入PDF.js实现预览 动态预览PDF文件 隐藏打开.下载.打印等功能 禁止键盘组合按键下载或另存为 禁用鼠标操作 添加全局水印 PDF文件 ...

  5. h5页面禁止复制_网页禁止鼠标右键禁止全选复制粘贴的方法

    这篇文章主要为大家详细介绍了网页禁止鼠标右键禁止全选复制粘贴的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 网页禁止鼠标右键禁止全选复制粘贴有很多种JS方 ...

  6. 抓屏的各种方法(http://www.codeproject.com/KB/dialog/screencap.aspx)

    文章翻译自 P.GopalaKrishna 的 Various methods for capturing the screen 一文,原版地址见下面.本文章版权归原作者所有.     如果转载该译文 ...

  7. android代码跳过锁屏,Android_android禁止锁屏保持常亮(示例代码),在播放video的时候在mediaplayer m - phpStudy...

    android禁止锁屏保持常亮(示例代码) 在播放video的时候在mediaplayer mMediaPlayer.setScreenOnWhilePlaying(true); 已经设置了,在原生的 ...

  8. 【1.6万字】连续抓屏保存为Gif动图 【keyboard库、PIL库、imageio库和pygifsicle库 探索】

    目录 一.抓屏保存为Gif 二.keyboard库 三.PIL 库 3.0 安装Pillow 3.1 打开本地图片 3.2 创建一张新图片 3.3 Image模块的常用属性 3.4 图片的模式和模式转 ...

  9. 摸鱼软件1:自动抓屏截图PPT软件

    摸鱼软件1:自动抓屏截图PPT软件 前言 事情主要起源于数据库的网课,我那时候知道我们课后会有一个限时的测试,于是就产生了一个需求就是说自动截屏获得老师上课的PPT,上网搜了一圈,但是发现并没有现成的 ...

最新文章

  1. AI一分钟|腾讯AI绝艺让二子,仍战胜柯洁;Google与腾讯达成专利交叉授权许可协议
  2. Linux控制台打开显示字符画,Linux 命令行字符画工具
  3. php+弱数据类型,PHP的弱数据类型
  4. 代理(Proxy)及常见示例
  5. 学习ribbon,进来看看吧
  6. 融 360、中邮消费金融、作业帮分享数据分析产品选型心得
  7. java 线程 通过interrupted_分析Java线程中断机制stop和interrupted的用法
  8. Python——常用模块
  9. input数字开头不能为0_李商隐为初恋写诗,每句以数字开头,最后10字一直被仿从未被超越...
  10. 数据挖掘流程_数据流挖掘
  11. Linux下mail/mailx命令发送邮件
  12. 内存泄露之常见问题解决「初级篇」
  13. 阿里巴巴副总裁陈丽娟:我对阿里云产品生态的思考
  14. 超好用的 Windows 效率工具推荐
  15. “管家婆”软件用于维修管理 (转)
  16. vCenter资源池
  17. 使用Spark ML进行数据分析
  18. ios查看ipa是否函数特定字符_利用strings 检测iOS ipa包是否调用私有api
  19. element ui 手动清除表单效验提示语
  20. 学习编程需要英语很好吗?

热门文章

  1. python matplotlib 画图神器
  2. linux 清理指定大小的文件
  3. 糗事百科的网络爬虫(v0.2)源码及解析 .
  4. 10.递归是神马?recursion
  5. 【C++】35.判断一个文件是否存在、 查找字符串中的子串
  6. cvpr2019/cvpr2018/cvpr2017(Papers/Codes/Project/Paper reading)
  7. Java程序员从笨鸟到菜鸟之(七十)细谈Spring(三)IOC和spring基本配置详解
  8. Python常见问题(2):编程问题 Programming FAQ
  9. 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut
  10. OpenCV Harris 角点检测子