如果 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 对象,它不会仍然检查吗? @YegyasetInterval
确保我们每 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() ? [复制]的主要内容,如果未能解决你的问题,请参考以下文章