Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向javascript添加超时延迟?_Javascript - Fatal编程技术网

向javascript添加超时延迟?

向javascript添加超时延迟?,javascript,Javascript,有人能帮我一下吗?我正在尝试让这个javascript在使用超时的3秒延迟后启动它的功能 我仍在学习javascript和jquery,如果有人能告诉我哪里出了问题以及如何解决问题,我将不胜感激 多谢各位 <script type="text/javascript"> setTimeout(function(){ window.onload = function showPopUp(el) { var cvr = document.getElementById("cover"

有人能帮我一下吗?我正在尝试让这个javascript在使用超时的3秒延迟后启动它的功能

我仍在学习javascript和jquery,如果有人能告诉我哪里出了问题以及如何解决问题,我将不胜感激

多谢各位

<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&#37;"
    }
}
},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&#37;"
    }
}, 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秒钟后执行某些操作。

您应该真正单击此处: