【问题标题】:document.readyState in Firefox 3.5.xFirefox 3.5.x 中的 document.readyState
【发布时间】:2010-12-09 20:44:25
【问题描述】:

我有一个网站,我在其中放置了这段代码以避免错误:

$(function() {
  var fnDocumentReady = function() {
    if(document.readyState != "complete") {
      setTimeout(function () { fnDocumentReady(); }, 300);
      return;
    }

    //do stuff
  };

  fnDocumentReady();
});

但我最近发现在 FF 3.5 中不执行“做事”所在的代码。经过分析和调试,我意识到FF中的document.readySate总是undefined。有什么办法可以用其他类似的东西代替它吗??

谢谢!

【问题讨论】:

    标签: javascript jquery document document-ready readystate


    【解决方案1】:

    回答为什么?部分:document.readyState was added in Firefox 3.6


    这里不需要额外的检查,jQuery 已经抽象了检测 DOM 何时准备就绪,你只需要:

    $(function() {
      //do stuff
    });
    

    如果您希望在代码运行之前加载所有图像,只需使用 window.onload,如下所示:

    $(window).load(function() {
      //do stuff
    });
    

    【讨论】:

    • 这可能不是一个好的答案,因为不是每个人都使用 jQuery,但由于它被接受,我不能抱怨太多。我会说,在 Firefox 中,如果您的代码运行得足够早,它可以侦听“DOMContentLoaded”事件来确定 Firefox 3.6 及更高版本何时返回 readyState == 'complete'
    • @Guss - 虽然是这样,但这并不能解决所有(尤其是较旧的)浏览器......问题的上下文都是关于 jQuery :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 2012-11-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2012-01-24
    • 2011-01-23
    相关资源
    最近更新 更多