好急!请高手帮忙!在线等!

weiqingal 2004-11-22 11:53:49
怎样在网页中加一个javascrip脚本,实现点击一下“开始考试”,就显示“考试剩余时间:00:00:00”
...全文
142 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
alpha15 2004-11-26
  • 打赏
  • 举报
回复
也up一下
weiqingal 2004-11-26
  • 打赏
  • 举报
回复
to:MYLiao(夕阳武士)我今天才看到:不好意思!你也不发个邮件什么的,我邮箱常开!
我把他粘在这里,感兴趣的朋友都好收藏,大家以后多多帮助!
1.asp页:
<body>
<form action="time.asp" method="post">
<p>考试时间:
<input type="text" name="examtime">
分</p>
<p>
<input type="submit" name="Submit" value="开始考试">
</p>
</form>
</body>
time.asp页:
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">

</HEAD>

<BODY onload="setTimeEnd();">
<script>
if(getCookie("times")==null||getCookie("times").split(":")[2].toString()=="NaN")
{

var endminutes=<%=(request.form("examtime"))%>*60;
}
else
{
var endminutes=parseInt(getCookie("times").split(":")[1])*60+parseInt(getCookie("times").split(":")[2]);
}
var betweendays=0;
function setTimeEnd()
{
var hour=0;
endminutes= endminutes - 1;
hour=parseInt(endminutes / 3600);
minutes=parseInt((endminutes- hour*3600)/60);
second= (endminutes- hour*3600- minutes*60)
hour = hour.toString();
if (hour.length < 2)
hour = "0" + hour;
minutes=minutes.toString()
if (minutes.length<2)
minutes="0"+minutes;
if (second<10)
second="0"+second;

var temp=hour+":"+minutes + ":" + second;
document.all.countdown.innerText=temp
SetCookie("times",temp);
if (endminutes==0)
{
alert("考试时间到!");
return;
}
setTimeout("setTimeEnd()",1000);
}

function SetCookie(name,value)
{
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
}
function DeleteCookie(name)
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
function getCookie(cookieName)
{
var cookieString = document.cookie;
var start = cookieString.indexOf(cookieName + '=');
// 加上等号的原因是避免在某些 Cookie 的值里有
// 与 cookieName 一样的字符串。
if (start == -1) // 找不到
return null;
start += cookieName.length + 1;
var end = cookieString.indexOf(';', start);
if (end == -1) return unescape(cookieString.substring(start));
return unescape(cookieString.substring(start, end));
}

</script>
考试剩余时间:<span id="countdown" style="FONT-WEIGHT: bolder"> </span>
</BODY>
</HTML>
MYLiao 2004-11-24
  • 打赏
  • 举报
回复
收藏,我的e-mail: drp@diana97831.com
weiqingal 2004-11-24
  • 打赏
  • 举报
回复
我已实现了,谢谢各位的帮忙!谁要我给发!
联系方式:wenweiqing101@tom.com
haroyy 2004-11-22
  • 打赏
  • 举报
回复
楼主是想显示考试剩余时间倒计时吧?
jFresH_MaN 2004-11-22
  • 打赏
  • 举报
回复
接楼上的
<button value="开始考试" name="start" onClick="begin_onclick()">
jackkui 2004-11-22
  • 打赏
  • 举报
回复
给开始考试添加onclick事件
处理如下:
function begin_onclick(){
alert("考试剩余时间:00:00:00");
}
weiqingal 2004-11-22
  • 打赏
  • 举报
回复
谢谢!我试试!能告诉具体怎样实现吗?
jFresH_MaN 2004-11-22
  • 打赏
  • 举报
回复
对啊
我也觉得这个用session存比较好
开始考试就把结束时间存在session里面
然后每次用那个时间减去当前时间,显示出来就行了啊
nickeyfff 2004-11-22
  • 打赏
  • 举报
回复
啊..那搞清了再问...
weiqingal 2004-11-22
  • 打赏
  • 举报
回复
时间是留在服务器上啊!问题是好象这个页面不是普通的ASP语言,他还圈套了xsl,我都弄糊涂了!
nickeyfff 2004-11-22
  • 打赏
  • 举报
回复
把时间设置在JS里,是不合适的.. 刷一下页面,时间又重置了,,应该不是这种效果吧

我觉得应该把时间留在服务器上,在session里保存着, 前台页面用一个iframe 或者div, 点击链接的时候,用js把该frame刷新..
weiqingal 2004-11-22
  • 打赏
  • 举报
回复
是啊!假设这个考试是50分,点击一下“开始考试”,就显示“考试剩余时间”(显示的是时间倒计时),都怪我急着去吃饭,没把问题说清。我用的方法是:
<script language="JScript"><![CDATA[
var http = new ActiveXObject("Microsoft.XMLHTTP");
var hInterval = "";
var count = 0;

function timeValue(second) {
var _hour = 0, _minute = 0, _second = 0;
var tmp = 0;
if (second <= 0)
return "00:00:00";

_second = second % 60;
tmp = (second - _second) / 60;
_minute = tmp % 60;
_hour = (tmp - _minute) / 60;

_hour = _hour.toString();
_minute = _minute.toString();
_second = _second.toString();

if (_hour.length < 2)
_hour = "0" + _hour;
if (_minute.length < 2)
_minute = "0" + _minute;
if (_second.length < 2)
_second = "0" + _second;

return _hour + ":" + _minute + ":" + _second;
}

function getservertime() { //与服务器同步时间
http.open("POST", "operation.asp", true);
http.setRequestHeader("OPERATION", "gettime");
http.onreadystatechange= HandleStateChange;
http.send();
}

function HandleStateChange() {
var err;
var page;
var second;
var timeStr;
if (http.readyState == 4) {
err = !Boolean(parseInt(http.getResponseHeader("RESULT")));
if (err) {
stopTimer();
page = http.getResponseHeader("PAGE");
location.replace(page);
return false;
}

second = parseInt(http.getResponseHeader("TIME"));
timeStr = timeValue(second);
if (timeStr == "00:00:00") {
stopTimer();
finish();
return false;
}
if (time) {
time.innerText = timeStr;
}
}
return true;
}

function gettime() {
var oldTime, newTime;
var _hour = 0, _minute = 0, _second = 0;

if (time) {
oldTime = time.innerText;
if (oldTime.length == 8) {
_hour = oldTime.substr(0,2);
_minute = oldTime.substr(3,2);
_second = oldTime.substr(6,2);
newTime = timeValue(_hour * 3600 + _minute * 60 + (--_second));
time.innerText = newTime;
if (newTime == "00:00:00") {
stopTimer();
finish();
return false;
}
}
}
count++;
if (count == 15) {
count =0;
getservertime();
}
return true;
}

function startTimer() {
getservertime();
gettime();
hInterval=setInterval(gettime,1000);
}

function stopTimer() {
if (hInterval != "") {
clearInterval(hInterval);
hInterval = "";
}
return true;
}
]]></script>
然后再调用startTimer() ,但是有不能实现,我不知怎么办?
lovelymaomao 2004-11-22
  • 打赏
  • 举报
回复
楼主想实现一个倒计时的功能啊,真服了U了 ̄

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧