首页 »Javascript教程 » js抓屏:JS应用的禁止抓屏、复制、打印 »正文js抓屏:JS应用的禁止抓屏、复制、打印来源: 发布时间:星期六, 2008年12月27日 浏览:79次 评论:0
项目需要禁止抓屏、复制、打印要求复制、打印做起来可能顺手点网上各种各样脚本俯首皆是但抓屏如何禁止?PrScreen是个特殊键它是没有keyCode键所以onkeydown变得毫无用处不过换种思路话可会更好我们从粘贴板着手采取曲线救国策略代码如下:
<script language="javascript"> window.Interval("clipboardData.Data('text','')",100); </script> 以上代码是每100毫秒清空次粘贴板操作当页面加载时脚本就开始自动执行但这样有个弊端不管网页被最小化还是如何只要这个窗口开着我们电脑所有复制操作都无法进行(脚本直在清空粘贴板)从某种意义上讲是达到预期效果了但有些欠佳:( 我们知道所有Control控件都有onfocus和onblur事件window窗口也不例外我们通过利用这两个事件只有在当前窗口处于活动状态时才执行清空操作否则停止执行代码如下: <script language="javascript"> var erval window.onfocus=function{erval=window.Interval("clipboardData.Data('text','')",100);} window.onblur=function{window.clearInterval(erval);} </script> 这样就可以完美解决这个问题但对于不将截屏内容放入粘贴板截屏来说此思路方法还是心有余而力不足 最新测试实战发现使用onfocus和onblur事件思路方法也不尽如人意当焦点指向页面内其他Control控件(即使Table)时window将失去焦点从而触发onblur事件停止执行清空粘贴板命令难道需要遍历所有Control控件为其onfocus和onblur绑定事件?有些迷茫和失望 另window.onfocus只是documentonfocus如果焦点在地址栏或菜单的类地方onfocus也将失效 仅以此文字记录自己半天时间研究JS心得体会 禁止打印只需将如果下样式代码放入即可(打印出页面内容将为空白): <style>@media pr{body{display:none}}</style> 禁止复制、选择、右键菜单: <script language=javascript> function click { false;} function click1{ (event.button2) { false; }} function CtrlKeyDown{ (event.keyCode67&&event.ctrlKey) { clipboardData.Data('text',''); false; } } document.onkeydown=CtrlKeyDown; document.onselectstart=click; document.onmousedown=click1; </script> <noscript><rame src=*.html></rame></noscript> <script language=javascript> <!-- (window.Event) document.captureEvents(Event.MOUSEUP); function nocontextmenu{ event.cancelBubble = true event.Value = false; false; } function norightclick(e){ (window.Event){ (e.which 2 || e.which 3) false; } (event.button 2 || event.button 3) { event.cancelBubble = true; event.Value = false; false;} } document.oncontextmenu = nocontextmenu; // for IE5+ document.onmousedown = norightclick; // for all others //--></script> 以上代码在IE6.0环境运行正常 0
相关文章读者评论发表评论 |
|