时间:2021-05-26
项目需要禁止抓屏、复制、打印的要求,复制、打印做起来可能顺手一点网上各种各样的脚本俯首皆是。但抓屏怎么禁止?PrintScreen是一个特殊的键,它是没有keyCode的键,所以onkeydown变得毫无用处。不过换一种思路的话可会更好,我们从粘贴板着手采取曲线救国策略。代码如下:
<scriptlanguage="javascript">
window.setInterval("clipboardData.setData('text','')",100);
</script>
以上代码是每100毫秒清空一次粘贴板操作。当页面加载时脚本程序就开始自动执行。但这样有个弊端,不管网页被最小化还是怎么的只要这个窗口开着我们电脑所有的复制操作都无法进行(脚本一直在清空粘贴板),从某种意义上讲是达到预期效果了,但有些欠佳:(。
我们知道所有的控件都有onfocus和onblur事件,window窗口也不例外。我们通过利用这两个事件,只有在当前窗口处于活动状态时才执行清空操作,否则停止执行。代码如下:
<scriptlanguage="javascript">
varinterval
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>@mediaprint{body{display:none}}</style>
禁止复制、选择、右键菜单:
<scriptlanguage=javascript>
functionclick(){
returnfalse;}
functionclick1(){if(event.button==2){returnfalse;}}
functionCtrlKeyDown(){
if(event.keyCode==67&&event.ctrlKey)
{
clipboardData.setData('text','');
returnfalse;
}
}
document.onkeydown=CtrlKeyDown;
document.onselectstart=click;
document.onmousedown=click1;
</script>
<noscript><iframesrc=*.html></iframe></noscript>
<scriptlanguage=javascript>
<!--
if(window.Event)
document.captureEvents(Event.MOUSEUP);
functionnocontextmenu(){
event.cancelBubble=true
event.returnValue=false;
returnfalse;
}
functionnorightclick(e){
if(window.Event){
if(e.which==2||e.which==3)
returnfalse;
}
elseif(event.button==2||event.button==3)
{
event.cancelBubble=true;
event.returnValue=false;returnfalse;}
}
document.oncontextmenu=nocontextmenu;//forIE5+
document.onmousedown=norightclick;//forallothers
//--></script>
以上代码在IE6.0环境运行正常。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
下面先看下js禁止右击保存图片。禁止鼠标右键保存图片禁止鼠标拖动图片文字禁止鼠标选中文字禁止鼠标选中禁止复制文本文字禁止鼠标选中jquery禁止文本复制和拷贝$
js或jquery实现页面打印(局部打印)1、js实现(可实现局部打印)复制代码代码如下:js打印.noprint{display:none}不需要打印的地方f
苹果qq不能录屏直播的原因是关闭后台的其它应用,有可能是其它应用禁止或中断了录屏;或者尝试直接重启手机,再使用录屏功能。 QQ(TencentQQ)是腾讯公司
单的JS禁止页面右键菜单--避免网站信息被盗用复制代码代码如下:functionblock(oEvent){if(window.event)oEvent=win
添加事件禁止选择、拖拽、右键(简单的禁止用户保存图片,但无法阻止用户打开控制台查看,或是直接抓包)将之转换为canvas(让浏览器认为不是图片以此禁止用户对之进