【发布时间】:2014-12-23 10:15:23
【问题描述】:
我遇到了一个荒谬的问题。我需要写
window.onload=function(){
//Javascript Code
}
使 javascript 工作。
例如我的以下代码不起作用:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JS test</title>
<script type="text/javascript">
var hours;
var minutes;
var seconds;
var temp;
function countdown() {
seconds = document.getElementById('countdown').innerHTML;
splitt = seconds.split(":");
hours = parseInt(splitt[0], 10);
minutes = parseInt(splitt[1], 10);
seconds = parseInt(splitt[2], 10);
if (hours == 0 && minutes == 0 && seconds == 0) {
temp = document.getElementById('countdown');
temp.innerHTML = "all done, bye bye";
return;
}
if (minutes == 0 && seconds == 0) {
hours--;
minutes=60;
}
if (seconds == 0) {
minutes--;
seconds=60;
}
seconds--;
temp = document.getElementById('countdown');
temp.innerHTML = hours+":"+minutes+":"+seconds;
timeoutMyOswego = setTimeout(countdown, 1000);
}
countdown();
</script></head>
<body>
<div id="countdown">
47:3:24
</div>
</body>
</html>
但这个可以:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JS test</title>
<script type="text/javascript">
window.onload=function(){
var hours;
var minutes;
var seconds;
var temp;
function countdown() {
seconds = document.getElementById('countdown').innerHTML;
splitt = seconds.split(":");
hours = parseInt(splitt[0], 10);
minutes = parseInt(splitt[1], 10);
seconds = parseInt(splitt[2], 10);
if (hours == 0 && minutes == 0 && seconds == 0) {
temp = document.getElementById('countdown');
temp.innerHTML = "all done, bye bye";
return;
}
if (minutes == 0 && seconds == 0) {
hours--;
minutes=60;
}
if (seconds == 0) {
minutes--;
seconds=60;
}
seconds--;
temp = document.getElementById('countdown');
temp.innerHTML = hours+":"+minutes+":"+seconds;
timeoutMyOswego = setTimeout(countdown, 1000);
}
countdown();
}
</script></head>
<body>
<div id="countdown">
47:3:24
</div>
</body>
</html>
我无法弄清楚为什么会发生这种情况以及为什么我需要编写 window.onload=function() 让我的 javascript 每次都能正常工作?
谢谢。
【问题讨论】:
标签: javascript function window onload