gpt4 book ai didi

javascript - 我需要为 Javascript 编写 window.onload=function() 才能工作

转载 作者:行者123 更新时间:2023-11-30 10:08:56 24 4
gpt4 key购买 nike

我一直在为一个荒谬的问题而苦恼。我要写

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 每次都能正常工作?

谢谢。

最佳答案

seconds = document.getElementById('countdown')

在将元素放入 DOM 之前,您无法从 DOM 中获取元素。

脚本在主体加载之前运行。

在正文中添加到 DOM 的任何内容都不可用于脚本。

在文档加载完成后运行脚本可避免该问题。

关于javascript - 我需要为 Javascript 编写 window.onload=function() 才能工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27618279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com