我相信這個問題之前已經被問過,但沒有確定具體的答案。
在我的網站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