JS应用之禁止抓屏、复制、打印


Posted in Javascript onFebruary 21, 2008

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

我们知道所有的控件都有onfocus和onblur事件,window窗口也不例外。我们通过利用这两个事件,只有在当前窗口处于活动状态时才执行清空操作,否则停止执行。代码如下:
    <script language="javascript">
var interval
window.onfocus=function(){interval=window.setInterval("clipboardData.setData('text','')",100);}
window.onblur=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.onkeydown=CtrlKeyDown;
document.onselectstart=click;
document.onmousedown=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环境运行正常。

Javascript 相关文章推荐
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
Feb 04 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
Oct 29 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
May 11 Javascript
用javascript对一个json数组深度赋值示例
Jul 27 Javascript
Javascript中封装window.open解决不兼容问题
Sep 28 Javascript
Javascript原型链和原型的一个误区
Oct 22 Javascript
jquery图片轮播特效代码分享
Apr 20 Javascript
Angular4 中常用的指令入门总结
Jun 12 Javascript
vue 2.0封装model组件的方法
Aug 03 Javascript
Vue中的无限加载vue-infinite-loading的方法
Apr 08 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
Sep 07 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
js 调整select 位置的函数
Feb 21 #Javascript
js 替换
Feb 19 #Javascript
javascript replace方法与正则表达式
Feb 19 #Javascript
window.addeventjs事件驱动函数集合addEvent等
Feb 19 #Javascript
setAttribute 与 class冲突解决
Feb 17 #Javascript
setInterval 和 setTimeout会产生内存溢出
Feb 15 #Javascript
一个js封装的不错的选项卡效果代码
Feb 15 #Javascript
You might like
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
页面使用密码保护代码
2013/04/10 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
Python 如何访问外围作用域中的变量
2016/09/11 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
美国时尚女装在线:Missguided
2016/12/03 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
华为python面试题
2016/05/03 面试题
Java的类与C++的类有什么不同
2014/01/18 面试题
幼儿园园长自我鉴定
2013/10/22 职场文书
运动会通讯稿300字
2014/02/02 职场文书
网络书店创业计划书
2014/02/07 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
旷工检讨书1000字
2015/01/01 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
鲁迅故居导游词
2015/02/05 职场文书
酒店员工管理制度
2015/08/05 职场文书
开学第一天的感想
2015/08/10 职场文书