- 浏览: 7948 次
- 性别:
- 来自: 北京
文章分类
最新评论
javascript网上考试试卷实例
本文主要实现的是网上考试试卷的代码,这里主要有两部分,一部分是JSP页面是在J2EE环境下的,一部分是已生成的页面,此页面是屏蔽了例如:F4(刷新),键盘按键,鼠标右键等。 并且实现了在网络出现故障的情况下,将答案写入到cookie中供下次用户再提交使用。
一。已生产页面,可直接复制成.html格式使用:
见附件一。
二。JSP页面,服务器端的源代码,注意传来的参数等问题。
一。已生产页面,可直接复制成.html格式使用:
见附件一。
二。JSP页面,服务器端的源代码,注意传来的参数等问题。
<%@ page contentType="text/html; charset=gb2312" language="java"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <% if (request.getProtocol().compareTo("HTTP/1.0") == 0) response.setHeader("Pragma", "no-cache"); if (request.getProtocol().compareTo("HTTP/1.1") == 0) response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); %> <HTML> <HEAD> <meta http-equiv="Expires" CONTENT="-10"> <meta http-equiv="Cache-Control" CONTENT="no-cache"> <meta http-equiv="Pragma" CONTENT="no-cache"> <STYLE type=text/css> A:link { COLOR: #ffffff; TEXT-DECORATION: none } A:visited { COLOR: #ffffff; TEXT-DECORATION: none } A:hover { COLOR: #ffffff; TEXT-DECORATION: underline } A:active { COLOR: #ffffff; TEXT-DECORATION: none } .style10 { font-size: 9pt } .style12 { font-family: "黑体"; font-weight: bold; } <!-- body,td,th { font-size: 13px; } .style7 { color: #660033 } .style13 { font-size: 16px; font-weight: bold; } .style11 { font-size: 20px; font-weight: bold; } <!-- #lovexin12,#lovexin14 { width: 100px; height: 20px; background-color: #e5e5e5; border: 1px solid #ddd; } html,body { height: 1000px; } #mm { height: 1000px; } --> </style> <title>在线考试</title> <% String times = String.valueOf(request.getAttribute("time")); Integer time = Integer.valueOf(times); %> <script language="JavaScript"> function hidetable() { document.getElementById("Layer1").style.display="none"; document.getElementById("Layer2").style.display="block"; } </script> <script language="javascript" src="/zjzcontest/scripts/cookie.js"> </script> <script language="JavaScript" type="text/javascript"> var time_all=<%=time%>; //设定总的时间,单位为分钟; time_all=time_all*60; function time_() { var mm,ss; mm=parseInt(time_all/60); ss=time_all % 60; if(time_all>=0) { if(mm<10) { mm='0'+mm; } if(ss<10) { ss='0'+ss; } str=mm+'分'+ss+'秒'; form2.test1.value=str; }if(time_all==0){ document.exam.submit(); window.opener=null; window.close(); } time_all=time_all-1; setTimeout('time_()',1000); } lastScrollY=0; function heartBeat(){ var diffY; if (document.documentElement && document.documentElement.scrollTop) diffY = document.documentElement.scrollTop; else if (document.body) diffY = document.body.scrollTop else {/*Netscape stuff*/} //alert(diffY); percent=.1*(diffY-lastScrollY); if(percent>0)percent=Math.ceil(percent); else percent=Math.floor(percent); document.getElementById("lovexin12").style.top=parseInt(document.getElementById ("lovexin12").style.top)+percent+"px"; document.getElementById("lovexin14").style.top=parseInt(document.getElementById ("lovexin12").style.top)+percent+"px"; lastScrollY=lastScrollY+percent; //alert(lastScrollY); } suspendcode12="<DIV id=\"lovexin12\" style='left:2px;POSITION:absolute;TOP:100px;display:none'>ad1</div>" suspendcode14="<DIV id=\"lovexin14\" style='right:2px;POSITION:absolute;TOP:2px; display:none;'><form name=form2><font color='red' size='3'>考试倒计时:</font><input type=text name=test1 readonly size=7 style='border:none;color:red;font-weight: bold;'></form></div>" document.write(suspendcode12); document.write(suspendcode14); window.setInterval("heartBeat()",1); if (window.ActiveXObject && !window.XMLHttpRequest) { window.XMLHttpRequest=function() { return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'); }; }//取得XMLHttpRequest对象 window.onload=function(){ var req=new XMLHttpRequest(); hidetable(); document.getElementById("lovexin14").style.display="block"; time_(); if (req) { req.open('POST', 'examAction!writeBeTime.action'); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.send(""); } setTimeout("document.exam.submit();",6000000); } </script> <script> function window.onbeforeunload() { if (event.clientX>document.body.clientWidth && event.clientY<0 ||event.altKey) { document.exam.submit(); alert("由于您非法关闭窗口,系统已经强制为您提交答案!");} }; </script> <script language="Javascript"><!-- //屏蔽鼠标右键、Ctrl+N、Ctrl+R、Shift+F10、F11、F1、F5、退格键 //Author: meizz(梅花雨) 2002-6-18 function document.oncontextmenu() { //屏蔽鼠标右键 event.returnValue=false; } function window.onhelp() { //屏蔽F1帮助 return false; } function document.onkeydown() { var k = window.event.keyCode; if (k == 8 || k==116) { //屏蔽退格删除键 //屏蔽 F5 刷新键 window.event.keyCode = 0; window.event.returnValue = false; } if (k == 122) { //屏蔽F11 window.event.keyCode = 0; window.event.returnValue = false; } if (window.event.ctrlKey && k == 80) {//Ctrl + P(打印) event.keyCode=0; window.event.returnValue = false; } if (window.event.ctrlKey && k == 79) {//Ctrl + O 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; if (window.event.srcElement.tagName == "A" && window.event.shiftKey) window.event.returnValue = false; //屏蔽 shift 加鼠标左键新开一网页 if (window.event.altKey && k == 115) { //屏蔽Alt+F4 window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px"); return false; } if (window.event.altKey && (k == 37 || k == 39)) { //屏蔽 Alt + 方向键← 和 Alt + 方向键→ event.returnValue=false; } } // --></script> </HEAD> <BODY onselectstart="return false" oncut="return false;" onpaste="return false" oncopy="return false;" style="FONT-SIZE: 10pt" vLink=#ffffff aLink=#ffffff link=#ffffff background="pic/login_bg.gif" leftMargin=0 topMargin=0 marginheight="0" marginwidth="0"; > <TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0 bgcolor="#FFFFFF"> <TBODY> <TR> <TD width="100%" height="100%" vAlign=top> <TABLE height=300 cellSpacing=0 cellPadding=0 width=770 bgcolor="#f0f0f0" align=center border=0> <TBODY> <TR> <TD vAlign=top noWrap width=700 height=300> <form action="" method="post" name="exam" target="_blank"> <div id="Layer2" style="display: none;"> <table width="90%" height="100%" border="0" align="center"> <tr> <td> </td> </tr> <tr> <td align="center" colspan="6"> <strong><span class="style11"><s:property value="couName" />在线考试 </span> </strong> <br> </td> </tr> <tr> <td> </td> </tr> <tr valign="top"> <td> <strong>一、</strong> </td> <td colspan="4"> <strong>单项选择题</strong> <br> </td> </tr> <s:iterator value="examList"> <s:if test="subjectType==1"> <tr valign="top"> <td align="center" valign="top"> <s:property value="subjectNum" /> . </td> <td colspan="4"> <span class="style7"><s:property value="subjectContent" /> </span> </td> </tr> <tr align="left" valign="middle"> <td align="right" valign="top" width="4%"> </td> <td width="4%"> <input type="radio" name='1<s:property value="subjectNum"/>' value="A"> </td> <td width="45%"> A. <s:property value="optionA" /> </td> <td align="right" valign="top" width="4%"> <input type="radio" name='1<s:property value="subjectNum"/>' value="B"> </td> <td width="43%"> B. <s:property value="optionB" /> </td> </tr> <tr align="left" valign="middle"> <td align="right" valign="top" width="4%"> </td> <td> <input type="radio" name='1<s:property value="subjectNum"/>' value="C"> </td> <td> C. <s:property value="optionC" /> </td> <td align="right" valign="top" width="4%"> <input type="radio" name='1<s:property value="subjectNum"/>' value="D"> </td> <td> D. <s:property value="optionD" /> </td> </tr> <tr> <td> </td> </tr> </s:if> </s:iterator> <tr valign="top"> <td> <strong> 二、</strong> </td> <td colspan="4"> <strong> 判断题</strong> <br> <br> </td> </tr> <s:iterator value="examList"> <s:if test="subjectType==3"> <tr valign="top"> <td align="center" valign="top"> <s:property value="subjectNum" /> . </td> <td colspan="4"> <span class="style7"><s:property value="subjectContent" /> </span> </td> </tr> <tr align="left" valign="center"> <td align="right" valign="top" width="4%"> </td> <td> <input type="radio" name='3<s:property value="subjectNum"/>' value="A"> </td> <td> A. <s:property value="optionA" /> </td> <td align="right" valign="top" width="4%"> <input type="radio" name='3<s:property value="subjectNum"/>' value="B"> </td> <td> B. <s:property value="optionB" /> </td> </tr> <tr> <td> </td> </tr> </s:if> </s:iterator> <tr valign="top"> <td> <strong> 三、</strong> </td> <td colspan="4"> <strong>多项选择题</strong> <br> <br> </td> </tr> <s:iterator value="examList"> <s:if test="subjectType==2"> <tr valign="top"> <td align="center" valign="top"> <s:property value="subjectNum" /> . </td> <td colspan="4"> <span class="style7"><s:property value="subjectContent" /> </span> </td> </tr> <tr align="left" valign="middle"> <td align="right" valign="top" width="4%"> </td> <td width="4%"> <input type="checkbox" name='2<s:property value="subjectNum"/>' value="A"> </td> <td width="45%"> A. <s:property value="optionA" /> </td> <td align="right" valign="top" width="4%"> <input type="checkbox" name='2<s:property value="subjectNum"/>' value="B"> </td> <td width="43%"> B. <s:property value="optionB" /> </td> </tr> <tr align="left" valign="middle"> <td align="right" valign="top" width="4%"> </td> <td> <input type="checkbox" name='2<s:property value="subjectNum"/>' value="C"> </td> <td> C. <s:property value="optionC" /> </td> <td align="right" valign="top" width="4%"> <input type="checkbox" name='2<s:property value="subjectNum"/>' value="D"> </td> <td> D. <s:property value="optionD" /> </td> </tr> <tr> <td> </td> </tr> </s:if> </s:iterator> <tr align="center"> <td align="center" colspan="5"> <input type="hidden" name="name" value="<s:property value="name" />"> <input type="hidden" name="couId" value="<s:property value="couId" />"> <input type="hidden" name="classId" value="<s:property value="classId" />"> <input type="hidden" name="couName" value="<s:property value="couName" />"> <input type="hidden" name="idNum" value="<s:property value="idNum" />"> <input type="hidden" name="examCount" value="<s:property value="examCount" />"> <input type="hidden" name="remainCount" value="<s:property value="remainCount" />"> <input type="hidden" name="allExamCount" value="<s:property value="allExamCount" />"> <input type="hidden" name="grade" value="<s:property value="grade" />"> <input type="hidden" name="first" value="<s:property value="first" />"> <input type="hidden" name="refresh" value="<s:property value="refresh" />"> <input type="hidden" name="paperNo" value="<s:property value="paperNo" />"> <input type="hidden" name="log_id" id="log_id" value="<s:property value="log_id" />"> <input type="submit" value=" 提 交 " name="check" style="font-weight: bold; font-size: 16px" onclick="return OpenNew();"> <br> </td> </tr> <tr> <td></td> </tr> </table> </div> </form> <div id="Layer1"> <TABLE height="600" cellSpacing=0 cellPadding=0 width="100%" border=0 bgcolor="#FFFFFF"> <TBODY> <TR> <TD width="100%" height="400" vAlign=middle> <TABLE height=400 cellSpacing=0 cellPadding=0 width=770 bgcolor="#FFFFFF" align=center border=0> <TBODY> <TR> <TD vAlign=top noWrap width=770> <TABLE height=300 cellSpacing=0 cellPadding=0 width="100%" bordercolor="#FFCC00" border=1> <TBODY> <TR valign="top"> <TD width="739" colspan="3" align="center" height=300 valign="center"> <strong><font size="3">正在传送试卷,请稍后......</font> </strong> </td> </tr> </table> </TD> </TR> <tr> </tr> </TBODY> </TABLE> </TD> </TR> </TBODY> </TABLE> </div> </TD> </TR> </TBODY> </TABLE> </TD> </TR> </TBODY> </TABLE> </BODY> <script language="javascript"> function OpenNew(){ var logid=document.getElementById("log_id").value; var name=document.getElementById("name").value; var couId=document.getElementById("couId").value; var classId=document.getElementById("classId").value; var couName=document.getElementById("couName").value; var idNum=document.getElementById("idNum").value; var examCount=document.getElementById("examCount").value; var remainCount=document.getElementById("remainCount").value; var allExamCount=document.getElementById("allExamCount").value; var grade=document.getElementById("grade").value; var first=document.getElementById("first").value; var refresh=document.getElementById("refresh").value; var paperNo=document.getElementById("paperNo").value; var obj=document.getElementsByTagName("input"); var length=obj.length; var pkey="";//判断答案 var skey="";//单选答案 var dkey="";//多选答案 var i=1; var sflag=0;//是否本题(单选)没有选择答案,0--没选择,1--选择 var pflag=0;//是否本题(判断)没有选择答案,0--没选择,1--选择 var dflag=0;//是否本题(多选)没有选择答案,0--没选择,1--选择 var dfirst=0;//是否本答案选项为本题的(多选)的第一个选项,0--是,1--不是 var sfirst=0;//是否本答案选项为本题的(单选)的第一个选项,0--是,1--不是 var pfirst=0;//是否本答案选项为本题的(判断)的第一个选项,0--是,1--不是 while(i<length){ // 取得所有判断题的答案,以.号分隔 if(obj[i-1].name.charAt(0)=='3'){ //取得某一题目的名称 var name=obj[i-1].name; //是否是同一道题目 if(obj[i].name==name){ //name是不是第一次出现 if(pfirst==0){ //当前项是否被选中 if(obj[i-1].checked){ pkey=pkey+obj[i-1].value; pflag=1; } //后一项是否被选中 if(obj[i].checked){ pkey=pkey+obj[i].value; pflag=1; } pfirst=1; } else{ if(obj[i].checked){ pkey=pkey+obj[i].value; pflag=1; } } }else { if(pflag==0) { //本题没有选择答案,置本题答案为0 pkey=pkey+"0:"+name+"."; }else{ //有选择则字符串加.分隔 pkey=pkey+":"+name+"."; } //在pflag为0的情况下,继续遍历,直到有选择项,否则就设为"0." pflag=0; if(obj[i].name.charAt(0)=='3'){ if(obj[i].checked){ pkey=pkey+obj[i].value; pflag=1; } } } } //处理多选题 if(obj[i-1].name.charAt(0)=='2'){ var name=obj[i-1].name; if(obj[i].name==name){ if(dfirst==0){ if(obj[i-1].checked){ dkey=dkey+obj[i-1].value; dflag=1; } if(obj[i].checked){ dkey=dkey+obj[i].value; dflag=1; } dfirst=1; } else{ if(obj[i].checked){ dkey=dkey+obj[i].value; dflag=1; } } }else { if(dflag==0){ dkey=dkey+"0:"+name+"."; }else{ dkey=dkey+":"+name+"."; } dflag=0; if(obj[i].name.charAt(0)=='2'){ if(obj[i].checked){ dkey=dkey+obj[i].value; dflag=1; } } } } //处理单选题 if(obj[i-1].name.charAt(0)=='1'){ var name=obj[i-1].name; if(obj[i].name==name){ if(sfirst==0){ if(obj[i-1].checked){ skey=skey+obj[i-1].value; sflag=1; } if(obj[i].checked){ skey=skey+obj[i].value; sflag=1; } sfirst=1; } else{ if(obj[i].checked){ skey=skey+obj[i].value; sflag=1; } } }else { if(sflag==0){ skey=skey+"0:"+name+"."; }else{ skey=skey+":"+name+"."; } sflag=0; if(obj[i].name.charAt(0)=='1'){ if(obj[i].checked){ skey=skey+obj[i].value; sflag=1; } } } } i++; } var allkey=skey+dkey+pkey; SetCookie("logid",logid); SetCookie(logid+"allkey",allkey); window.opener=null; window.close(); } function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值 { var Days = 30; //此 cookie 将被保存 30 天 var exp = new Date(); //new Date("December 31, 9998"); exp.setTime(exp.getTime() + Days*24*60*60*1000); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/"; } </script> </HTML>
- exam.rar (9.9 KB)
- 下载次数: 18
相关推荐
JavaScript实例应用 JavaScript实例应用 JavaScript实例应用
javaScript经典实例,内容丰富。
JavaScript精彩网页特效实例精粹JavaScript精彩网页特效实例精粹JavaScript精彩网页特效实例精粹JavaScript精彩网页特效实例精粹
JavaScript应用程序经典实例书中的所有实例源码,与书籍是配套的,有此书的朋友你可结合本套源码来学习。里面有些代码是挺有意思的,也是比较实用的源代码。
JavaScript实例大全,都是很经典的实例哦
javascript实例javascript实例javascript实例
JAVASCRIPT 动态网页编程实例手册JAVASCRIPT 动态网页编程实例手册
个人收集的javascript小实例源码,对学习javascript或做网站的朋友应该有用!
JavaScript动态网页编程实例手册
JavaScript基础,JavaScript特效,JavaScript实例
《JavaScript经典实例》
javascript实例代码javascript实例代码
JavaScript实例教程 通过实例进行JavaScript讲解
javascript 解析 rss 实例 订阅 xml
JavaScript实例集合 JavaScript 实例 集合
从JavaScript基本的语法到JavaScript的各种对象进行了实例练习
javascript实例代码集,共各位朋友参考学习!
用javascript 做的一些页面效果的实例!