`
coderliang2018
  • 浏览: 27220 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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来实现禁止地址栏直接访问页面的功能: ```javascript &lt;script type="text/javascript"&gt; window.onload = function() { if (top.location != self.location) { //...

    web软件包装成C/S模式,实现屏蔽浏览器菜单-地址栏

    然而,有些特定场景下,企业可能希望将Web软件包装成C/S(Client/Server,客户端/服务器)模式,以提供更定制化的用户体验,例如屏蔽浏览器菜单和地址栏,提高应用的安全性和可控性。本文将详细探讨如何实现这一目标...

    屏蔽IE的工具栏菜单栏地址栏(一共两个)

    根据给定的文件信息,我们可以深入探讨如何使用JavaScript来屏蔽Internet Explorer(IE)浏览器的工具栏、菜单栏和地址栏,实现一个自定义界面的弹窗功能。这在某些应用场景下,比如创建一个干净无干扰的用户界面或...

    JavaScript正则获取地址栏中参数的方法

    JavaScript正则获取地址栏中参数的方法主要阐述了如何通过正则表达式在JavaScript中获取URL地址栏参数值的技巧。这一方法在Web开发中十分实用,尤其是在处理动态地址时,我们经常需要获取某些特定的查询参数值。通过...

    JavaScripte屏蔽右键,简单实用。

    虽然使用JavaScript屏蔽右键功能可以有效地保护网页内容,但这种方法并非没有限制和潜在问题: 1. **用户体验**:完全屏蔽右键可能会降低用户体验,特别是对于那些习惯于使用右键菜单进行导航或操作的用户。 2. **...

    JavaScript代码轻松实现网页内容禁止复制(代码简单)

    在互联网上,我们经常会遇到一些网页内容禁止我们进行复制的情况,这背后往往是通过JavaScript代码实现的。当网站不希望其内容被用户复制时,可以通过编写特定的JavaScript脚本来禁止复制。这种技术的使用,有时会...

    javascript页面代码防止frame禁止右键

    禁止粘贴、复制和剪切操作 这些功能也是通过添加事件监听器实现的。例如,禁止复制操作可以通过以下方式: ```html ;" oncut="return false;"&gt; ``` 对于粘贴操作: ```html ;"&gt; ``` #### 4. 自定义图标 为了提高...

    深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制

    JavaScript和JQuery是实现这一功能的常用脚本语言,通过编写特定的代码可以轻松地实现屏蔽右键和复制的效果。 ### 屏蔽鼠标右键菜单及禁止选择复制的基本原理 屏蔽鼠标右键菜单主要是通过监听鼠标右键事件...

    html禁止网页文字复制

    标题"html禁止网页文字复制"所涉及的核心技术就是如何通过HTML和JavaScript(特别是jQuery库)来实现这一功能。接下来,我们将深入探讨如何实现这个功能,并提供相关代码示例。 首先,HTML本身并不具备直接禁止文本...

    android WebView加载H5去地址栏的两种方式

    然后,我们可以在H5页面加载完成后,注入一段JavaScript代码,隐藏浏览器的地址栏和工具栏: ```java webView.loadUrl("javascript:(function(){" + "document.getElementById('toolbar').style.display='none';" ...

    js禁止右键和禁止复制

    在探讨“js禁止右键和禁止复制”的主题时,我们主要关注的是如何通过JavaScript来实现对用户在网页上的右键点击以及文本复制功能的禁用。这种方法常被用于保护网站内容不被轻易复制或下载,尤其是在版权敏感的环境中...

    用javascript屏蔽功能键

    ### 使用JavaScript屏蔽功能键 #### 1. 屏蔽键盘所有键 为了完全禁止用户通过键盘操作页面,可以通过以下方式实现: ```javascript document.onkeydown = function (event) { // 如果事件对象不存在,则创建一个...

    css导航栏精选,javascript导航栏

    3. **动态加载内容**:AJAX(异步JavaScript和XML)技术允许在不刷新整个页面的情况下更新导航栏中的内容,如实时通知或个性化推荐。 4. **交互反馈**:例如,当用户点击一个链接后,JavaScript可以改变导航条上的...

    JS 屏蔽网页右键复制和ctrl+c复制

    总的来说,通过JavaScript来屏蔽网页的右键复制和Ctrl+C快捷键是一种常见的技术手段,但需要平衡好用户体验和内容保护之间的关系。在实际开发中,我们还需要考虑到其他可能的复制方式,如浏览器的 inspect element ...

    Chrome插件Enable Copy破解网站禁止复制插件

    1.Enable Copy 插件可以破解掉网页中因网站开发者使用JavaScript脚本启动的网页禁止复制功能,如果是别的方式(比如网页上的文本使用flash插件载入来禁止用户复制、右键等功能)的时候,Enable Copy 插件的破解方法...

    用JavaScript 屏蔽鼠标右键和ctrl

    这是我自己写得一个例子,通过js屏蔽复制的.还有右键,网上搜到的,都是屏蔽整个body,我稍作了修改.可以屏蔽文本框.

    html禁止复制另存

    此外,过度的限制也可能影响用户体验,如阻止文本选中可能会妨碍合法的使用场景,比如用户想要选择地址栏中的URL。因此,在实施这些保护措施时,开发者应权衡其必要性,确保不会过分干扰正常用户的使用体验。 总之...

    javascript 密码框防止用户粘贴和复制的实现代码

    需要注意的是,虽然阻止复制和粘贴在某些情况下确实可以增强安全性,但这并不是最优的用户体验。对于一些用户来说,可能需要使用复制粘贴功能来快速填写密码,如果无法使用这一功能,可能会给他们的使用带来不便。...

    HTML+CSS+Javascript 模仿WIN 7任务栏

    此外,JavaScript还可以实现窗口的最小化、最大化和关闭效果,以及任务栏图标的动态添加和移除。 这个项目虽然粗糙,但其创新之处在于将桌面操作系统的功能引入到浏览器环境中,让用户体验到类似的操作流程。对于...

    javascript 按键事件(兼容各浏览器)

    在本文中,我们首先介绍了JavaScript中处理键盘按键事件的三种不同类型的事件:keydown、keypress和keyup,以及它们对应的事件句柄onkeydown、onkeypress和onkeyup。这些事件类型在处理按键时是有顺序和差异的:首先...

Global site tag (gtag.js) - Google Analytics