检查文档是否准备就绪

时间:2012-05-02 11:19:31

标签: javascript jquery domdocument

是否有正确的语法使用jQuery' s $().ready检查DOM是否准备就绪,而不是在DOM加载后创建回调函数?

例如,如果DOM准备就绪,我想运行不同的代码。

function checkDOMReady() 
{
    if ($(document).ready)
        alert("The DOM was ready when this function was called");
    else
        alert("The DOM was NOT ready when this function was called");
}

这有效吗?如果没有,是否有正确的方法呢?

编辑: 我很清楚$(document).ready(function(){});之类的东西,但这不是我想要的。我有一个每10分钟运行一次的脚本,包括最初加载页面的时候,我希望在文档准备就绪时运行不同的代码,如果不是,则运行其他代码。我可以将这些数据存储在全局/静态变量中,但我想知道是否可以简单地评估一个布尔表达式来检查是否可以操作DOM。

3 个答案:

答案 0 :(得分:3)

我不明白你为什么要这样做。在任何情况下,您都可以拥有一个在文档就绪回调中设置的变量并检查变量。

答案 1 :(得分:3)

使用jQuery

可以使用:

    var isready = false;

    $(function() {
     isready = true;
    });

here

了解详情

答案 2 :(得分:1)

@Lucero是对的,但在某些情况下,您需要一个标志来指示内容已准备就绪(可能与另一个框架同步......)。如果是这种情况,您可以创建一个窗口范围变量来发信号并在$(document).ready上设置其值:

// declare your "global" flag as false
window.flagDomLoaded = false;

// set the global to true to signal that the contents are ready
$(document).ready(function(){ window.flagDomLoaded = true; });

// check the global flag on your code
function checkDOMReady() 
{
    if (window.flagDomLoaded)
        alert("The DOM was ready when this function was called");
    else
        alert("The DOM was <b>NOT</b> ready when this function was called");
}

请注意,我建议您使用更标准的方法,例如@Lucero或@Sandeep解决方案。如果你不能这样做,这个解决方案是可以接受的。