var time = 5;
function dec() {
time--;
document.getElementById("time_pad").innerHTML = time;
if (time == 0) document.getElementById("do_OK").fireEvent("onclick");
}
function sAlert(txt) {
time = 5;
window.setInterval("dec()", 1000);
var shield = document.createElement("DIV");
shield.id = "shield";
shield.style.position = "absolute";
shield.style.left = "0px";
shield.style.top = "0px";
shield.style.width = "100%";
shield.style.height = document.body.scrollHeight + "px";
shield.style.background = "#333";
shield.style.textAlign = "center";
shield.style.zIndex = "10000";
shield.style.filter = "alpha(opacity=0)";
shield.style.opacity = 0;
var alertFram = document.createElement("DIV");
alertFram.id = "alertFram";
alertFram.style.position = "absolute";
alertFram.style.left = "50%";
alertFram.style.top = "50%";
alertFram.style.marginLeft = "-225px";
alertFram.style.marginTop = -75 + document.documentElement.scrollTop + "px";
alertFram.style.width = "450px";
alertFram.style.height = "150px";
alertFram.style.background = "#ccc";
alertFram.style.textAlign = "center";
alertFram.style.lineHeight = "150px";
alertFram.style.zIndex = "10001";
strHtml = " <ul style=\"list-style:none;margin:0px;padding:0px;width:100%\"> \n";
strHtml += " <li style=\"background:#DD828D;text-align:left;padding-left:20px;font-size:18px;font-weight:bold;height:25px;line-height:25px;border:1px solid #F9CADE;\">[提示]: <span id='time_pad' style=\"color:red;font-family:Verdana;font-weight:bold;\">" + time + "</span>秒钟后关闭" + " </li> \n";
strHtml += " <li style=\"background:#fff;text-align:center;font-size:14px;height:120px;line-height:120px;border-left:1px solid #F9CADE;border-right:1px solid #F9CADE;\"> " + txt + " </li> \n";
strHtml += " <li style=\"background:#FDEEF4;text-align:center;font-weight:bold;height:25px;line-height:25px; border:1px solid #F9CADE;\"> <input type=\"button\" value=\" 确 定 \" id=\"do_OK\" onclick=\"doOk()\" style=\"width:60px\" /> </li> \n";
strHtml += " </ul> \n";
alertFram.innerHTML = strHtml;
document.body.appendChild(alertFram);
document.body.appendChild(shield);
this.setOpacity = function(obj, opacity) {
if (opacity >= 1) opacity = opacity / 100;
try { obj.style.opacity = opacity; } catch (e) { }
try {
if (obj.filters.length > 0 && obj.filters("alpha")) {
obj.filters("alpha").opacity = opacity * 150;
} else {
obj.style.filter = "alpha(opacity=\"" + (opacity * 150) + "\")";
}
} catch (e) { }
}
var c = 0;
this.doAlpha = function() {
if (++c > 20) { clearInterval(ad); return 0; }
setOpacity(shield, c);
}
var ad = setInterval("doAlpha()", 1);
this.doOk = function() {
document.body.removeChild(alertFram);
document.body.removeChild(shield);
document.body.onselectstart = function() { return true; }
document.body.oncontextmenu = function() { return true; }
}
document.getElementById("do_OK").focus();
document.body.onselectstart = function() { return false; }
document.body.oncontextmenu = function() { return false; }
}
调用dec()时还没有time_pad,怎么能找到?
function dec() {
time--;
document.getElementById("time_pad").innerHTML = time;
if (time == 0) document.getElementById("do_OK").fireEvent("onclick");
}
function sAlert(txt) {
time = 5;
window.setInterval("dec()", 1000);
var shield = document.createElement("DIV");
shield.id = "shield";
shield.style.position = "absolute";
shield.style.left = "0px";
shield.style.top = "0px";
shield.style.width = "100%";
shield.style.height = document.body.scrollHeight + "px";
shield.style.background = "#333";
shield.style.textAlign = "center";
shield.style.zIndex = "10000";
shield.style.filter = "alpha(opacity=0)";
shield.style.opacity = 0;
var alertFram = document.createElement("DIV");
alertFram.id = "alertFram";
alertFram.style.position = "absolute";
alertFram.style.left = "50%";
alertFram.style.top = "50%";
alertFram.style.marginLeft = "-225px";
alertFram.style.marginTop = -75 + document.documentElement.scrollTop + "px";
alertFram.style.width = "450px";
alertFram.style.height = "150px";
alertFram.style.background = "#ccc";
alertFram.style.textAlign = "center";
alertFram.style.lineHeight = "150px";
alertFram.style.zIndex = "10001";
strHtml = " <ul style=\"list-style:none;margin:0px;padding:0px;width:100%\"> \n";
strHtml += " <li style=\"background:#DD828D;text-align:left;padding-left:20px;font-size:18px;font-weight:bold;height:25px;line-height:25px;border:1px solid #F9CADE;\">[提示]: <span id='time_pad' style=\"color:red;font-family:Verdana;font-weight:bold;\">" + time + "</span>秒钟后关闭" + " </li> \n";
strHtml += " <li style=\"background:#fff;text-align:center;font-size:14px;height:120px;line-height:120px;border-left:1px solid #F9CADE;border-right:1px solid #F9CADE;\"> " + txt + " </li> \n";
strHtml += " <li style=\"background:#FDEEF4;text-align:center;font-weight:bold;height:25px;line-height:25px; border:1px solid #F9CADE;\"> <input type=\"button\" value=\" 确 定 \" id=\"do_OK\" onclick=\"doOk()\" style=\"width:60px\" /> </li> \n";
strHtml += " </ul> \n";
alertFram.innerHTML = strHtml;
document.body.appendChild(alertFram);
document.body.appendChild(shield);
this.setOpacity = function(obj, opacity) {
if (opacity >= 1) opacity = opacity / 100;
try { obj.style.opacity = opacity; } catch (e) { }
try {
if (obj.filters.length > 0 && obj.filters("alpha")) {
obj.filters("alpha").opacity = opacity * 150;
} else {
obj.style.filter = "alpha(opacity=\"" + (opacity * 150) + "\")";
}
} catch (e) { }
}
var c = 0;
this.doAlpha = function() {
if (++c > 20) { clearInterval(ad); return 0; }
setOpacity(shield, c);
}
var ad = setInterval("doAlpha()", 1);
this.doOk = function() {
document.body.removeChild(alertFram);
document.body.removeChild(shield);
document.body.onselectstart = function() { return true; }
document.body.oncontextmenu = function() { return true; }
}
document.getElementById("do_OK").focus();
document.body.onselectstart = function() { return false; }
document.body.oncontextmenu = function() { return false; }
}
调用dec()时还没有time_pad,怎么能找到?
我试过了,放在最后还是同样的错误
time--;
document.getElementById("time_pad").innerHTML = time;
if (time == 0) document.getElementById("do_OK").fireEvent("onclick");
}
你会发现这个函数执行了6次
楼上的提醒了我,改了一下,var time = 5;
function dec() {
if (time == 0) {
document.getElementById("do_OK").fireEvent("onclick");
}
else if (time >= 0) {
document.getElementById("time_pad").innerHTML = time;
}
else {
return false;
}
time--;
}但好像执行第二次时间在跳跃,根本没有到5秒
楼上的提醒了我,改了一下,var time = 5;
function dec() {
if (time == 0) {
document.getElementById("do_OK").fireEvent("onclick");
}
else if (time >= 0) {
document.getElementById("time_pad").innerHTML = time;
}
else {
return false;
}
time--;
}但好像执行第二次时间在跳跃,根本没有到5秒
估计还是在这句上,它不能停止执行
它从载入后,每隔指定的时间就执行一次表达式
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript" type="text/javascript" > function aaa() {
sAlert("asdfasdfa");
return false;
}
var time = 5,timer=null;
function dec() {
time--;
document.getElementById("time_pad").innerHTML = time;
if (time == 0){
document.getElementById("do_OK").fireEvent("onclick");
clearInterval(timer);//================清除计时器,因为你删除
timer=null;
}
}
function sAlert(txt) {
time = 5;
var shield = document.createElement("DIV");
shield.id = "shield";
shield.style.position = "absolute";
shield.style.left = "0px";
shield.style.top = "0px";
shield.style.width = "100%";
shield.style.height = document.body.scrollHeight + "px";
shield.style.background = "#333";
shield.style.textAlign = "center";
shield.style.zIndex = "10000";
shield.style.filter = "alpha(opacity=0)";
shield.style.opacity = 0;
var alertFram = document.createElement("DIV");
alertFram.id = "alertFram";
alertFram.style.position = "absolute";
alertFram.style.left = "50%";
alertFram.style.top = "50%";
alertFram.style.marginLeft = "-225px";
alertFram.style.marginTop = -75 + document.documentElement.scrollTop + "px";
alertFram.style.width = "450px";
alertFram.style.height = "150px";
alertFram.style.background = "#ccc";
alertFram.style.textAlign = "center";
alertFram.style.lineHeight = "150px";
alertFram.style.zIndex = "10001";
strHtml = " <ul style=\"list-style:none;margin:0px;padding:0px;width:100%\"> \n";
strHtml += " <li style=\"background:#DD828D;text-align:left;padding-left:20px;font-size:18px;font-weight:bold;height:25px;line-height:25px;border:1px solid #F9CADE;\">[提示]: <span id='time_pad' style=\"color:red;font-family:Verdana;font-weight:bold;\">" + time + "</span>秒钟后关闭" + " </li> \n";
strHtml += " <li style=\"background:#fff;text-align:center;font-size:14px;height:120px;line-height:120px;border-left:1px solid #F9CADE;border-right:1px solid #F9CADE;\"> " + txt + " </li> \n";
strHtml += " <li style=\"background:#FDEEF4;text-align:center;font-weight:bold;height:25px;line-height:25px; border:1px solid #F9CADE;\"> <input type=\"button\" value=\" 确 定 \" id=\"do_OK\" onclick=\"doOk()\" style=\"width:60px\" /> </li> \n";
strHtml += " </ul> \n";
alertFram.innerHTML = strHtml;
document.body.appendChild(alertFram);
document.body.appendChild(shield);
this.setOpacity = function(obj, opacity) {
if (opacity >= 1) opacity = opacity / 100;
try { obj.style.opacity = opacity; } catch (e) { }
try {
if (obj.filters.length > 0 && obj.filters("alpha")) {
obj.filters("alpha").opacity = opacity * 150;
} else {
obj.style.filter = "alpha(opacity=\"" + (opacity * 150) + "\")";
}
} catch (e) { }
}
var c = 0;
this.doAlpha = function() {
if (++c > 20) { clearInterval(ad); return 0; }
setOpacity(shield, c);
}
var ad = setInterval("doAlpha()", 1);
this.doOk = function() {
document.body.removeChild(alertFram);
document.body.removeChild(shield);
document.body.onselectstart = function() { return true; }
document.body.oncontextmenu = function() { return true; }
}
document.getElementById("do_OK").focus();
document.body.onselectstart = function() { return false; }
document.body.oncontextmenu = function() { return false; }
timer=window.setInterval("dec()", 1000);//=================放最后,防止未生成控件
}</script>
<title></title>
</head>
<body>
<form id="form1" >
<div>
<input type="submit" ID="Button2" valule="Button" OnClick=" return aaa()"/>
<input id="Button1" type="button" value="button" onclick="aaa()" />
</div>
</form>
</body>
</html>
另外有一点我有点怀疑,是不是浏览器的问题,我用的是win server 2003 + IE 8 beta2IE8脚本调式功能貌似很强不知道兄弟们用的是什么 IE测试的
另外有一点我有点怀疑,是不是浏览器的问题,我用的是win server 2003 + IE 8 beta2IE8脚本调式功能貌似很强不知道兄弟们用的是什么 IE测试的
if(timer){clearInterval(timer);timer=null;}//================清除计时器
document.body.removeChild(alertFram);
document.body.removeChild(shield);
document.body.onselectstart = function() { return true; }
document.body.oncontextmenu = function() { return true; }
}