Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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 当文档readyState完成时,如何触发事件_Javascript - Fatal编程技术网

Javascript 当文档readyState完成时,如何触发事件

Javascript 当文档readyState完成时,如何触发事件,javascript,Javascript,我想在DOM完全加载后激发并激活事件。我签出了document.readyState,但这不是一个事件。我想在readyState完成后启动它。如何做到这一点?一些简单的谷歌搜索告诉我以下代码: // alternative to DOMContentLoaded document.onreadystatechange = function () { if (document.readyState == "complete") { initApplication();

我想在DOM完全加载后激发并激活事件。我签出了
document.readyState
,但这不是一个事件。我想在
readyState
完成后启动它。如何做到这一点?

一些简单的谷歌搜索告诉我以下代码:

// alternative to DOMContentLoaded
document.onreadystatechange = function () {
    if (document.readyState == "complete") {
        initApplication();
    }
}

对于已经使用jQuery库的任何人来说,这个函数都可以用来处理这个问题

否则,@Neal的解决方案将实现相同的功能,而无需添加额外的依赖项。

处理此问题


这只会在加载所有外部资源(包括图像)后触发。

取自另一篇文章,但是,您可以这样做:

var-alreadyrunflag=0//指示目标函数是否已运行的标志
if(文件增补列表器){
document.addEventListener(“DOMContentLoaded”,function()){
alreadyrunflag=1;
//做你需要做的事
},假);
}else if(document.all&&!window.opera){
var contentloadtag=document.getElementById(“contentloadtag”);
contentloadtag.onreadystatechange=函数(){
如果(this.readyState==“完成”){
alreadyrunflag=1;
//做你需要做的事
}
}
}
//退路
window.onload=函数(){
setTimeout(函数(){
如果(!alreadyrunflag){
//做你需要做的事
}
}, 0);

为什么建议将jQuery添加到它甚至不需要的地方?考虑给JQuery添加一个替代的建议,因为这是过去5年中见过的数千次的答案。在编写的时候,jQuery被广泛使用,并且对于5的情况来说是一个合适的解决方案。我已经添加了您的解决方案@Neal作为替代方案,以避免额外的依赖性。它至少不会在Opera Developer上启动,只有
window.onload
do。