读书人

javascript 屏蔽按键跟禁止地址栏复制

发布时间: 2013-11-09 17:06:47 作者: rapoo

javascript 屏蔽按键和禁止地址栏复制
最近有客户反映系统一个页面可以打开过个,因为页面里面有计时功能,会导致计时不准确,网上收集了一些js屏蔽的代码,在这里记录下。

<script type="text/javascript">                function contextMenuCheck() {    event.returnValue = false;     }        function helpCheck() {    return false;     }      //禁止鼠标左键和Ctrl键打开新窗口function leftclick() { if (window.event.button == 1 && window.event.ctrlKey) {//2为右键   alert("禁止操作!");} }    //屏蔽其他功能键       function checkKey() {      var k = window.event.keyCode;//屏蔽 F5 刷新键    if (k  ==  116) {                                             window.event.keyCode  =  0;              window.event.returnValue =  false;          }          if (window.event.ctrlKey && k == 82)//Ctrl + R      window.event.returnValue=   false;          if (window.event.ctrlKey && k == 78)//屏蔽Ctrl+n              window.event.returnValue =  false;          if (window.event.ctrlKey && k == 87)//屏蔽Ctrl+w              window.event.returnValue =  false;          if (event.shiftKey && k==121)//屏蔽 shift+F10              window.event.returnValue = false;          //屏蔽shift+鼠标左键打开新页面    if (window.event.srcElement.tagName == "A" && window.event.shiftKey) {        //禁止事件冒泡      window.event.cancelBubble = true;    //设置事件的返回值            window.event.returnValue = false;            return false;        }               }   var mouseCur = 0;function mouseMove(ev) { ev= ev || window.event; var mousePos = mouseCoords(ev); document.getElementById("yyy").value = mousePos.y; //鼠标y轴的坐标    mouseCur = mousePos.y;} function mouseCoords(ev) { if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } return { x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop - document.body.clientTop }; } var winWidth = 0;var winHeight = 0;//函数:获取尺寸function findDimensions() {//获取窗口宽度if(window.innerWidth)winWidth = window.innerWidth;else if((document.body) && (document.body.clientWidth))winWidth = document.body.clientWidth;//获取窗口高度if(window.innerHeight)winHeight = window.innerHeight;else if((document.body) && (document.body.clientHeight))winHeight = document.body.clientHeight;/*nasty hack to deal with doctype swith in IE*///通过深入Document内部对body进行检测,获取窗口大小if(document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth) {winHeight = document.documentElement.clientHeight;winWidth = document.documentElement.clientWidth;}}window.onblur = function (e) {e = e || window.event;    if (window.ActiveXObject && /MSIE/.test(navigator.userAgent)) {  //IE        //如果 blur 事件是窗口内部的点击所产生,返回 false, 也就是说这是一个假的 blur        var x = e.clientX;        var y = e.clientY;        var w = document.body.clientWidth;        var h = document.body.clientHeight;        if (x >= 0 && x <= w && y >= 0 && y <= h) {            window.focus();            return false;        }    }//获取鼠标位置    findDimensions();//如果失去焦点, 并且焦点不在document里面, 在工具栏或者其他窗口        if (!document.hasFocus() && mouseCur < winHeight) {window.focus();        }} //注册键盘按键document.onkeydown = checkKey;//注册点击事件  document.onclick = checkKey;//注册鼠标左键和Ctrl键打开新窗口事件  document.onmousedown = leftclick;//注册鼠标移动事件document.onmousemove = mouseMove; //注册屏蔽鼠标右键          document.oncontextmenu = contextMenuCheck;    //注册屏蔽F1帮助          window.onhelp = helpCheck;</script><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html> <head>  <title>考试窗口</title>  <meta name="Generator" content="EditPlus">  <meta name="Author" content="">  <meta name="Keywords" content="">  <meta name="Description" content=""> </head><body><h1>考试窗口</h1><input id="yyy" type="text">鼠标y坐标</body></html>

上面的禁止地址栏复制用到了window.foucs 会影响一直强制在当前窗口,当切换别的窗口的时候有时候会切换不过去, 不知道有其他屏蔽地址栏复制的办法没有。

读书人网 >JavaScript

热点推荐