向javascript添加超时延迟?
有人能帮我一下吗?我正在尝试让这个javascript在使用超时的3秒延迟后启动它的功能 我仍在学习javascript和jquery,如果有人能告诉我哪里出了问题以及如何解决问题,我将不胜感激 多谢各位向javascript添加超时延迟?,javascript,Javascript,有人能帮我一下吗?我正在尝试让这个javascript在使用超时的3秒延迟后启动它的功能 我仍在学习javascript和jquery,如果有人能告诉我哪里出了问题以及如何解决问题,我将不胜感激 多谢各位 <script type="text/javascript"> setTimeout(function(){ window.onload = function showPopUp(el) { var cvr = document.getElementById("cover"
<script type="text/javascript">
setTimeout(function(){
window.onload = function showPopUp(el) {
var cvr = document.getElementById("cover")
var dlg = document.getElementById("dialog")
cvr.style.display = "block"
dlg.style.display = "block"
if (document.body.style.overflow = "hidden") {
cvr.style.width = "1024"
cvr.style.height = "100%"
}
}
},3000);
</script>
setTimeout(函数(){
window.onload=函数showPopUp(el){
var cvr=document.getElementById(“封面”)
var dlg=document.getElementById(“对话框”)
cvr.style.display=“块”
dlg.style.display=“块”
if(document.body.style.overflow=“hidden”){
cvr.style.width=“1024”
cvr.style.height=“100%;”
}
}
},3000);
这是错误的:
setTimeout(function () {
window.onload = function showPopUp(el) {
这将在3秒后分配一个onload
处理程序,此时窗口可能已经加载
将
window.onload=函数showPopUp(el){…}
部分从加载脚本时起等待3秒
setTimeout(function () {
var cvr = document.getElementById("cover")
var dlg = document.getElementById("dialog")
cvr.style.display = "block"
dlg.style.display = "block"
if (document.body.style.overflow = "hidden") {
cvr.style.width = "1024"
cvr.style.height = "100%"
}
}, 3000);
或者反转
setTimeout
和窗口。onload
在所有资源完成加载后等待3秒钟
window.onload = function showPopUp(el) {
setTimeout(function () {
// ...
}, 3000);
};
简言之,你有:
setTimeout(function () {
window.onload = function() {
// do stuff...
}
}, 3000);
那是行不通的。这表示,在3秒钟后,为窗口的onload
事件分配一个处理程序。此时事件已经(很可能)触发。所以这个函数不会执行
相反,把它翻过来
window.onload = function() {
setTimeout(function () {
// do stuff...
}, 3000);
}
因此,在这里,当窗口加载时,您将在3秒钟后执行某些操作。您应该真正单击此处: