我相信这个问题之前已经被问过,但没有确定具体的答案。
在我的网站http://euphoricsoftware.com/有一个奇特的倒计时脚本,可以自动将您带到正常站点,而不是移动或低带宽。该脚本适用于所有浏览器<body onload="setTimeout(countDown(8),1000);">
(其中8是起始数字),除非有时在Chrome中倒数不会移动,并且打开JS控制台显示Uncaught ReferenceError: countDown is not defined
。
此外,页面上还有一个按钮,可让您暂停和恢复倒计时。继续调用countDown()
函数,即使发生未定义的错误时,如果单击按钮两次倒计时将工作,所以它似乎与onload有关。JavaScript函数有时未定义
这是我一直在使用(SO的代码格式已经酿了间隔位)代码:
<html>
<head>
<!-- ... -->
<script type="text/javascript">
var stopRedirect = false;
var back = 0;
function redirect()
{
if (!stopRedirect) {window.location = "home.html";}
}
function countDown(num)
{
if (!stopRedirect)
{
back = num-1;
if (num < 10)
{
document.getElementById("top").innerHTML=num+1;
}
document.getElementById("middle").innerHTML=num;
if (num > 1)
{
document.getElementById("bottom").innerHTML=num-1;
var t = setTimeout("countDown("+(num-1)+")",1000);
}
else
{
document.getElementById("bottom").innerHTML=" ";
document.getElementById("unit").innerHTML=" second ";
var r = setTimeout("redirect()",1000);
}
}
}
function stop()
{
if (!stopRedirect)
{
stopRedirect = true;
document.getElementById("stop").style.display="none";
document.getElementById("start").style.display="block";
}
}
function start()
{
if (stopRedirect)
{
stopRedirect = false;
document.getElementById("stop").style.display="block";
document.getElementById("start").style.display="none";
var c = setTimeout("countDown("+(back)+")",1000);
}
}
</script>
</head>
<body onLoad="setTimeout(countDown(8),1000);">
<!-- ... -->
,你可以在http://euphoricsoftware.com/
看到活动的网站有谁知道这是为什么发生了什么?由于
我看不出为什么这不起作用。我在Chrome中刷新了你的页面大约一百次,从来没有遇到任何问题或者看到错误。 – mrtsherman 2012-01-29 04:38:06
在Chrome 18.0.1017.2 dev-m和18.0.1021.0 canary中似乎不起作用 – ProfSmiles 2012-01-29 04:49:17
在Canary中适合我。 – mrtsherman 2012-01-29 05:11:34