JS教程:线小测试程序
tQNumber = -1;
questionsAsked = new Array(); for (indexCounter = 0; indexCounter < questions.length;indexCounter++) { questionsAsked[indexCounter] = false; } numberOfQuestionsAsked = 0; numberOfQuestionsCorrect = 0; if (timeLeft == -1) { window.status = "No Time Limit"; } else { quizTimerId = window.setInterval("updateTimeLeft()",1000); } } 首先修改的是resetQuiz()函数的定义。在上一版本的在线小测试程序中,resetQuiz()函数并不接收参数。现在,resetQuiz()函数将接收两个参数,这两个参数分别表示问题数量和时间限制。 接着,将全局变量timeLeft的值设置为参数SelectedTimeLimit的值,将全局变量totalQuestionsToAsk的值设置为参数numberOfQuestions的值。在后面的代码中你将会看到,这两个全局变量将用以判断问题是否已经回答完毕,以及检查时间限制是否已经到点。 在resetQuiz()函数的最后,添加了一个计时器,以监测剩余的时间。一种情况是计时器已经到点,剩余时间已经用完,即变量timeLeft的值为–1。如果变量timeLeft的值为–1时,则使用window对象的status属性,在浏览器的状态栏中显示一条时间到点的信息。注意,在Netscape浏览器中,当框架页改变时,将在浏览器的状态栏中显示Document:Done以覆盖No Time Limit信息。如果变量timeLeft的值不是–1,则使用setInterval()方法启动一个计时器,以每隔1s调用一次updateTimeLeft()函数。 updateTimeLeft()函数是一个新添加的函数。下面的代码用以创建updateTimeLeft()函数。将该代码添加在脚本块其他函数的下面。 function updateTimeLeft() { timeLeft--; if (timeLeft == 0) { alert("Time’s Up"); numberOfQuestionsAsked = totalQuestionsToAsk; window.top.fraQuizPage.location.href = "AskQuestion.htm"; } else { var minutes = Math.floor(timeLeft / 60); var seconds = timeLeft - (60 * minutes); if (minutes < 10) minutes = "0" + minutes; if (seconds < 10) seconds = "0" + seconds; window.status = "Time left is " + minutes + ":" + seconds; } } updateTimeLeft()函数完成了3个功能。首先,它将剩余时间减1,即timeLeft--;然后判断是否还有剩余的时间,当剩余时间为0时,则停止小测试程序;否则,在浏览器的状态栏中显示 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |