JS前台控制

    作为评测系统,必然要有对前台的控制,在本版本系统中,通过javascript控制,实现对常用手法的禁用,此次需要禁用的是以下几种:

  • 禁用右键
  • 禁用复制粘贴
  • 禁用F5
  • 禁用Backspace
  • 禁用网上邻居
  • 禁用U盘

代码如下

<span style="font-family:KaiTi_GB2312;font-size:18px;"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>禁用demo</title>
<!--禁用复制粘贴F5及Backspace-->
<script type="text/javascript">
	document.onkeydown=function(){
		//禁用Ctrl+C
		if	(event.ctrlKey && event.keyCode==67)
		{
			alert('考试过程中,已经禁用复制快捷键CtrlL+C!');
			return false;
		}
		//禁用Ctrl+V
		if	(event.ctrlKey && event.keyCode==86)
		{
			alert('考试过程中,已经禁用粘贴快捷键CTRL+V!');
			return false;
		}
		//禁用F5
		if	(event.keyCode==116)
		{
			alert('考试过程中,已经禁用刷新页面键F5!');
			return false;
		}
		//当焦点位置为非文本框时,禁用BackSpace
		//IE下不兼容window.event.target,使用srcElement代替
		if(event.keyCode==8){
			var ev=window.event;
			var obj=ev.srcElement;
			if	(obj.getAttribute('type')!='text'&& obj.getAttribute('type')!='textarea')
			{
				alert('非文本框中,禁用BackSpace键!');
				return false;
			}
		}
		}
</script>
<!--获取用户IP-->
	<!--向form中添加数据-->
	<script type="text/javascript" event="OnCompleted(hResult,pErrorobject, pAsyncContext)" for=foo>
		 document.forms[0].txtMACAddr.value=unescape(MACAddr);
		 document.forms[0].txtIPAddr.value=unescape(IPAddr);
		 document.forms[0].txtDNSName.value=unescape(sDNSName);
	</script>
	<META content="MShtml 6.00.2800.1106" name=GENERATOR>
	<!--获取地址-->
	<script type="text/javascript" event=OnobjectReady(objobject,objAsyncContext) for=foo>
	   if(objobject.IPEnabled != null && objobject.IPEnabled != "undefined" && objobject.IPEnabled == true){
			if(objobject.MACAddress != null && objobject.MACAddress != "undefined")
				MACAddr = objobject.MACAddress;
			if(objobject.IPEnabled && objobject.IPAddress(0) != null && objobject.IPAddress(0) != "undefined")
				IPAddr = objobject.IPAddress(0);
			if(objobject.DNSHostName != null && objobject.DNSHostName != "undefined")
				sDNSName = objobject.DNSHostName;
		}
	 </script>
	 <!--嵌入ActiveX-->
	 <!--WMI的ActiveX插件-->
	<object id="locator" classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></object>
	<!--获取地址的ActiveX插件-->
	<object id="foo" classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></object>
	<script type="text/javascript">
			var service = locator.ConnectServer();
			var MACAddr ;
			var IPAddr ;
			var DomainAddr;
			var sDNSName;
			service.Security_.ImpersonationLevel=3;
			service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
	</script>
</head>
<!--禁用右键-->
<body oncontextmenu="window.event.returnValue=false" >  
	<form id=form1 method=post>
		<input type="text" id="txtMACAddr">
		<input type="text" id="txtIPAddr">
		<input type="text" id="txtDNSName">
		<input type="text" id="test" value="test" />
	</form>
</body>
</html></span>

    当然,仅仅这几个控制是不够的,还需要对访问考试系统的ip进行限制,这个会在稍后的博客中说明。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值