专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »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

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: