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