JS应用之禁止抓屏、复制、打印
来源:互联网 发布:网络监控视频怎么截取 编辑:程序博客网 时间:2024/06/07 06:29
项目需要禁止抓屏、复制、打印的要求,复制、打印做起来可能顺手一点网上各种各样的脚本俯首皆是。但抓屏怎么禁止?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环境运行正常。
本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/13610.htm
禁止复制和PrScrn抓屏
<html>
<head>
<script language=javascript>
function nocopy()
{
alert("对不起,为保护作者权益,本站文章不允许复制。/n/n如有特殊需要,请与本站联系。");
event.returnValue=false;
}
</script>
<script>
function stop(){
return false;
}
document.oncontextmenu=stop;
</script>
<script language="javascript">
<!--
// 屏蔽PrintScreen
function testclip(){
try {
if(clipboardData.getData("Text")||clipboardData.getData("HTML")||clipboardData.getData("URL")) //检测系统内存;
{
null;//不为图像则保留内存
}
}
catch(e){
clipboardData.setData("Text","")//清空内存
}
setTimeout("testclip()",500)
}
//页面加载启动区;
testclip();//不停清空剪贴板
//-->
</script>
</HEAD>
<BODY BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 oncopy="nocopy()">
呵呵
<img src="m.jpg">
</BODY>
</html>
- JS应用之禁止抓屏、复制、打印
- JS应用之禁止抓屏、复制、打印
- JS,CSS 禁止复制,禁止打印,禁止……
- js屏蔽右键及各种按键 js蔽打印 js屏蔽鼠标右键 js禁止复制
- js禁止复制
- JS禁止复制粘贴
- JS 禁止复制
- js 禁止网页复制
- js禁止右键功能,禁止复制
- js防复制、禁止右键
- js 禁止 复制,粘贴代码
- js实现复制;与禁止复制
- SharePoint 2010/2013 禁止复制打印 webpart
- 禁止右键,禁止选中,禁止网页复制的Js代码
- js 禁止内容选择 禁止打印 禁止右键弹出菜单
- js禁止右键,禁止选取,禁止粘贴, 禁止复制,禁止剪贴
- 应用抓包之Fiddler抓包
- js 小技巧 禁止复制页面
- 如何在WINCE4.2/WINCE5.0中“永久”保存设置(保存注册表的方法)
- 关于全日期的统计
- STL (转载)
- 关于同一个网站下Session却不能同步的问题
- Configure参数选项详解
- JS应用之禁止抓屏、复制、打印
- 职场人多被“拖延”所累 克服三大障碍升职无忧
- QuickSort
- WINCE系统启动直接运行自己的程序
- 面试:黄金法则——细节决定成败
- 求助这 lingo 程序那里错了?怎么改?
- 应用上下文-applicationContext.xml
- Boolean.getBoolean("true")
- Symbian http 连接与代理