如果 jQuery 不可用,有没有办法检查 document.ready() ? [复制]

Posted

技术标签:

【中文标题】如果 jQuery 不可用,有没有办法检查 document.ready() ? [复制]【英文标题】:Is there a way to check document.ready() if jQuery is not available? [duplicate] 【发布时间】:2011-08-08 02:01:09 【问题描述】:

可能重复:$(document).ready equivalent without jQuery

我知道你可以使用 window.onload 事件来让函数运行,但是有没有办法让脚本来查询文档是否准备好?

类似

function update()

    if( !document.ready() )  // don't do unless document loaded
        return ;

window.setInterval( 'update();', 100 ) ;

不能改变

元素,也不能改变 jQuery/其他库。

【问题讨论】:

@justkt OP 不是在寻找一个准备好的等价物,而是在寻找一种方法来查询文档是否已经准备好。 @Šime - ready 会检查文档是否已准备就绪,如果有任何绑定到它,则触发事件。 @justkt 将处理程序绑定到“就绪”事件是一回事,查询文档是否就绪是另一回事。 OP正在做后者,而另一个问题是前者。这是两个不同的东西。 DOMContentLoaded 事件? 【参考方案1】:

给你:

var tid = setInterval( function () 
    if ( document.readyState !== 'complete' ) return;
    clearInterval( tid );       
    // do your work
, 100 );

了解document.readyState 属性here。我不确定当前所有浏览器是否都实现了它。

【讨论】:

Grrrrreat answer!! 测试 Chrome、IE6、7 和 9、Firefox 4、Opera 11 都可以。 确实是很好的答案。适用于所有主要浏览器。不好意思,帖子晚了,但还是想问,为什么要设置100ms的setInterval?如果没有 setInterval 对象,它不会仍然检查吗? @Yegya setInterval 确保我们每 100 毫秒重复检查一次,直到文档变为 'complete' 哦,是的,对不起,我误以为 setInterval 到 setTimeout 了。我的错……谢谢你的校准。【参考方案2】:

结帐https://github.com/jakobmattsson/onDomReady

比几行还复杂! - 如果您想要多个浏览器合规性。

【讨论】:

【参考方案3】:

此代码适用于所有浏览器

if(window.attachEvent())

    window.attachEvent("onload",load);

 else

    window.addEventListener("load",load,true);

 

 function load()
    //Code to execute when the document is loaded.
 

【讨论】:

这又是负载,而不是就绪事件。这些是不同的。

以上是关于如果 jQuery 不可用,有没有办法检查 document.ready() ? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如果字典键不可用,则返回 None

如何使用 jQuery 检查行数

如何检查该函数在编译器上是不是可用?

有没有办法检查 PHP 范围内的可用端口?

有没有办法使用 pyaudio 检查可用的麦克风?

有没有办法在递归调用之前检查可用的堆栈大小? (C#)