setTimeout只执行一次

机器圣手 2009-05-19 10:09:45
setTimeout只执行了一次就不执行了 看文章说和documet.write有关,就把我程序里的document.form.控件名.value去了,改成innerHTML=值 ,可效果还是一样。另外我程序里还有一个seetTimeout ,是和他有冲突吗?,求高手帮忙啊
...全文
715 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
natineprince 2009-05-19
  • 打赏
  • 举报
回复
var a=setInterval(func, time);//开始
clearInterval(a)//结束
机器圣手 2009-05-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 princefbx 的回复:]
setTimeout是延时执行函数, 如果要循环执行, 用setInterval(func, time);来做最好
[/Quote]
setInterval(func, time);没用过

请问结束条件是什么呢?
机器圣手 2009-05-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lzj34 的回复:]
timer=window.setTimeout(RunTimer(k),1000)
[/Quote]
试过了不好使!
Jarvis-Li 2009-05-19
  • 打赏
  • 举报
回复
用setInterval(func, time);就可以实现
把它放在调用的函数里面去就可以
caiying2009 2009-05-19
  • 打赏
  • 举报
回复
try:
检查执行RunTimer(k)时
$("tit_time")是否完成加载
princefbx 2009-05-19
  • 打赏
  • 举报
回复
setTimeout是延时执行函数, 如果要循环执行, 用setInterval(func, time);来做最好
relucent 2009-05-19
  • 打赏
  • 举报
回复
setTimeout 本来就只执行一次 要不断循环执行可以考虑setInterval
lzj34 2009-05-19
  • 打赏
  • 举报
回复
timer=window.setTimeout(RunTimer(k),1000)
机器圣手 2009-05-19
  • 打赏
  • 举报
回复
我发的自己不能修改吗?奇怪中。。。
代码来了 别嫌多啊 !

<HEAD> <TITLE>全国驾照理论考试系统 </TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"> <LINK
href="admincss/base.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2900.3199" name=GENERATOR>
<style type="text/css">
<!--
#sub{border:1px #00f solid;width:280px;height:100px;position:absolute;display:none;background:#fff}
#tit{width:280px;height:22px;background:#00f;font-size:14px;font-weight:700;color:#fff;line-height:24px;;padding-left:1px;}
#tit_time{margin-left:100px;font-size:12px;}
#inf{width:280px;height:80px;padding:30px;}
#inf span{width:100px; text-align:center;CURSOR: pointer}

.STYLE25 { color: #000000;
font-size: 24px;
font-weight: bold;
}
.STYLE15 {font-size: 20px}
.STYLE30 {
color: #000000;
font-size: 18px;
}
.STYLE32 {color: #00CCFF}
.STYLE33 {color: #000000}
.STYLE34 {color: #0098FF}
.STYLE16 {font-size: 16px}
-->
</style>
<script type="text/JavaScript">
<!--
var t=0,timer;

function $(id){
return document.getElementById(id)
}

function RunTimer(k){//倒计时
$("tit_time").innerHTML="倒计时: "+k+" 秒"
k = k-1
if(k>=0){
alert(k);
timer=window.setTimeout(function(){RunTimer(k)},1000)
}else{
subFoem()
}
}


function showSub(){//显示对话框
var posX=document.body.offsetWidth ||document.documentElement.offsetWidth
var posY=document.body.offsetHeight ||document.documentElement.offsetHeight

with($("sub").style){
top=posY/2-100+"px"
left=posX/2-160+"px"
display="block"
}
t=10
RunTimer(t)
}

function hidSub(){//隐藏对话框
if ($("sub").style.display="block"){
clearTimeout(timer)
$("sub").style.display="none"
$("sub_bt").disabled=0
}
}
function subFoem(){//提交
hidSub()
document.forms[0].option.value="-3";
form.submit();
}
//-->


function stA() {
document.forms[0].option.value="1";
return true;
}

function stB() {
document.forms[0].option.value="2";
return true;
}
function stC() {
document.forms[0].option.value="3";
return true;
}
function stD() {
document.forms[0].option.value="4";
return true;
}
function stYES() {
document.forms[0].option.value="8";
return true;
}
function stNO() {
document.forms[0].option.value="16";
return true;
}
function stPre() {
document.forms[0].option.value="-1";
return true;
}
function stNext() {
document.forms[0].option.value="-2";
return true;
}


function stRefer() {

showSub();
}

function timeOver() {

alert("考试时间到!");

document.forms[0].option.value="-3";
form.submit();
}

function showLeftTime(stopTimeMillSec) {
var now = new Date();
var nowMillSec = now.getTime();
var today = new Date(stopTimeMillSec - nowMillSec);
if(today < 0 ){
timeOver();
}
var hour = today.getHours() - 8;
var minute = today.getMinutes();
var second = today.getSeconds();
time = hour + ":" + minute + ":" + second;
document.form.lefttime.value = time;
var s = "showLeftTime(" + stopTimeMillSec + ");"
window.setTimeout(s, 500);
}

function Clicked(evt,qid) { //键盘触发事件
var theKey

theKey = evt.keyCode
if (theKey == 8 ||theKey == 116) //屏蔽 F5 刷新键
{
window.event.keyCode = 0;
window.event.returnValue = false;
}

if(qid==2){ //选择题

switch(theKey){

case 101: //上一题 5 号键
stPre();
form.submit();
break
case 102: //下一题 6键
stNext();
form.submit();
break
case 99: //C 3 键
stC();
form.submit();
break
case 96: //D 0键
stD();
form.submit();
break
case 97: //A 1键
stA();
form.submit();
break
case 98: //B 2键
stB();
form.submit();
break
case 100: //交卷 4键
stRefer();
form.submit();
break
case 109: //关机 双击-键
GuanJi()
break
default:
break
}
}
if(qid==1){ //判断题
switch(theKey){

case 101: //上一题 5 号键
stPre();
form.submit();
break
case 102: //下一题 6键
stNext();
form.submit();
break

case 97: //对 1键
stYES();
form.submit();
break
case 98: //错 2键
stNO();
form.submit();
break
case 100: //交卷 4键
stRefer();
form.submit();
break
case 109: //关机 双击-键
GuanJi()
break
default:
break
}
}

} </script>
</HEAD>


机器圣手 2009-05-19
  • 打赏
  • 举报
回复
代码来了 别嫌多啊 !

<HEAD><TITLE>全国驾照理论考试系统</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="admincss/base.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2900.3199" name=GENERATOR>
<style type="text/css">
<!--
#sub{border:1px #00f solid;width:280px;height:100px;position:absolute;display:none;background:#fff}
#tit{width:280px;height:22px;background:#00f;font-size:14px;font-weight:700;color:#fff;line-height:24px;;padding-left:1px;}
#tit_time{margin-left:100px;font-size:12px;}
#inf{width:280px;height:80px;padding:30px;}
#inf span{width:100px; text-align:center;CURSOR: pointer}

.STYLE25 { color: #000000;
font-size: 24px;
font-weight: bold;
}
.STYLE15 {font-size: 20px}
.STYLE30 {
color: #000000;
font-size: 18px;
}
.STYLE32 {color: #00CCFF}
.STYLE33 {color: #000000}
.STYLE34 {color: #0098FF}
.STYLE16 {font-size: 16px}
-->
</style>
<script type="text/JavaScript">
<!--
var t=0,timer;

function $(id){
return document.getElementById(id)
}

function RunTimer(k){//倒计时
$("tit_time").innerHTML="倒计时: "+k+" 秒"
k = k-1
if(k>=0){
alert(k);
timer=window.setTimeout(function(){RunTimer(k)},1000)
}else{
subFoem()
}
}


function showSub(){//显示对话框
var posX=document.body.offsetWidth ||document.documentElement.offsetWidth
var posY=document.body.offsetHeight ||document.documentElement.offsetHeight

with($("sub").style){
top=posY/2-100+"px"
left=posX/2-160+"px"
display="block"
}
t=10
RunTimer(t)
}

function hidSub(){//隐藏对话框
if ($("sub").style.display="block"){
clearTimeout(timer)
$("sub").style.display="none"
$("sub_bt").disabled=0
}
}
function subFoem(){//提交
hidSub()
document.forms[0].option.value="-3";
form.submit();
}
//-->


function stA() {
document.forms[0].option.value="1";
return true;
}

function stB() {
document.forms[0].option.value="2";
return true;
}
function stC() {
document.forms[0].option.value="3";
return true;
}
function stD() {
document.forms[0].option.value="4";
return true;
}
function stYES() {
document.forms[0].option.value="8";
return true;
}
function stNO() {
document.forms[0].option.value="16";
return true;
}
function stPre() {
document.forms[0].option.value="-1";
return true;
}
function stNext() {
document.forms[0].option.value="-2";
return true;
}

function stRefer() {

showSub();
}
function timeOver() {

alert("考试时间到!");

document.forms[0].option.value="-3";
form.submit();
}
function showLeftTime(stopTimeMillSec) {
var now = new Date();
var nowMillSec = now.getTime();
var today = new Date(stopTimeMillSec - nowMillSec);
if(today < 0 ){
timeOver();
}
var hour = today.getHours() - 8;
var minute = today.getMinutes();
var second = today.getSeconds();
time = hour + ":" + minute + ":" + second;
document.form.lefttime.value = time;
var s = "showLeftTime(" + stopTimeMillSec + ");"
window.setTimeout(s, 500);
}

function Clicked(evt,qid) { //键盘触发事件
var theKey

theKey = evt.keyCode
if (theKey == 8 ||theKey == 116) //屏蔽 F5 刷新键
{
window.event.keyCode = 0;
window.event.returnValue = false;
}

if(qid==2){ //选择题

switch(theKey){

case 101: //上一题 5 号键
stPre();
form.submit();
break
case 102: //下一题 6键
stNext();
form.submit();
break
case 99: //C 3 键
stC();
form.submit();
break
case 96: //D 0键
stD();
form.submit();
break
case 97: //A 1键
stA();
form.submit();
break
case 98: //B 2键
stB();
form.submit();
break
case 100: //交卷 4键
stRefer();
form.submit();
break
case 109: //关机 双击-键
GuanJi()
break
default:
break
}
}
if(qid==1){ //判断题
switch(theKey){

case 101: //上一题 5 号键
stPre();
form.submit();
break
case 102: //下一题 6键
stNext();
form.submit();
break

case 97: //对 1键
stYES();
form.submit();
break
case 98: //错 2键
stNO();
form.submit();
break
case 100: //交卷 4键
stRefer();
form.submit();
break
case 109: //关机 双击-键
GuanJi()
break
default:
break
}
}

}
function GuanJi(){

var flag = form3.hid_flag.value;
var front_time = form3.hid_time.value;
var date = new Date();
var wkey = window.event.keyCode
if(wkey == 109 && flag == 1){
form3.hid_flag.value=2;
time = Date.parse(date);
form3.hid_time.value=time;

}
else if(wkey == 109 && flag == 2 ){
now_time = Date.parse(date);
if(now_time - front_time<2000){

var objShell = new ActiveXObject("wscript.shell");
objShell.Run('shutdown -s -t 1');
objShell = null;
}
else{
form3.hid_flag.value=2;
time = Date.parse(date);
form3.hid_time.value=time;
}
}

}
</script>
</HEAD>
hookee 2009-05-19
  • 打赏
  • 举报
回复
结构如下
var tid = setTimeout("fun()",100);
function fun(){
if(tid != null){clearTimeout(tid);tid=null;}
///...处理一步的操作
if(需要继续) tid = setTimeout("fun()",100);
}
zyongking 2009-05-19
  • 打赏
  • 举报
回复
setTimeout放的位置对不对
看下
natineprince 2009-05-19
  • 打赏
  • 举报
回复
setTimeout是用在方法里的.例如
function a(){
alert(1);
setTimeout("a()",1000);
}
pt1314917 2009-05-19
  • 打赏
  • 举报
回复
最好把你代码都帖出来,让大伙看看问题可能出在哪。
机器圣手 2009-05-19
  • 打赏
  • 举报
回复
常大哥又来了 再谢了

87,910

社区成员

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

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