繁体   English   中英

我希望我的代码在页面加载时运行但 onload 不起作用

[英]i want my code to run when the page loads on but onload doesnt work

所以这是我的 html:

                <div id="MyClockDisplay" class="" onload="showTime()"> 

                    clock

                </div>
and its my java script :
 function showTime(){
let date = new Date();
let h = date.getHours(); // 0 - 23
let m = date.getMinutes(); // 0 - 59
let s = date.getSeconds(); // 0 - 59
let session = "AM";

if(h == 0){
    h = 12;
}

if(h > 12){
    h = h - 12;
    session = "PM";
}

h = (h < 10) ? "0" + h : h;
m = (m < 10) ? "0" + m : m;
s = (s < 10) ? "0" + s : s;

let time = h + ":" + m + ":" + s + " " + session;    
setTimeout(showTime, 1000);

document.getElementById("MyClockDisplay").innerHTML = time;

}

当我插入 onclick(在 html 中)时,java 脚本代码运行良好,但我希望时钟在我的页面加载时开始工作,但 onload 不工作,有人可以帮我吗?

onload不是div元素的有效属性(它仅适用于<body><frame><frameset><iframe><img><link><script> )。 如果希望JS在加载后立即执行,请立即将script标签移动到元素下方。

 <div id="MyClockDisplay" class="" onload="showTime()"> clock </div> <script> function showTime() { let date = new Date(); let h = date.getHours(); // 0 - 23 let m = date.getMinutes(); // 0 - 59 let s = date.getSeconds(); // 0 - 59 let session = "AM"; if (h == 0) { h = 12; } if (h > 12) { h = h - 12; session = "PM"; } h = (h < 10) ? "0" + h : h; m = (m < 10) ? "0" + m : m; s = (s < 10) ? "0" + s : s; let time = h + ":" + m + ":" + s + " " + session; document.getElementById("MyClockDisplay").innerHTML = time; } setTimeout(showTime, 1000); </script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM