$(document).ready,但在IE document.body中仍然为null



这看起来很奇怪。在IE中,我正在等待$(document).ready()。一旦文档准备好,我就会控制台日志document.body,它为null。如果我在暂停时把它包起来,它在那里?文档。身体应该做好文档准备吗?例如:

// doesn't work
$(x.document).ready( function() { 
  x.document.body.innerHTML = '<div style="background-color: 000; color: #FF0000  ;">Cyril Figgis</div>';
});

// works
$(x.document).ready( function() { 
  setTimeout( function() { 
    x.document.body.innerHTML = '<div style="background-color: #000; color: #FF0000  ;">Hello!</div>';
  }, 1000 );
} );

document.body是在一秒钟后定义的,但不是立即定义的?

我只是在研究这个问题,因为我正在IE9上运行同一个问题,我认为这个2年前的jQuery bug条目可能很有趣:http://bugs.jquery.com/ticket/12282

引用:"在所提供的示例中,您依赖于.ready()的异步执行,这不是一个高谈阔论。这是因为.ready)在1.8中稍早启动,因为它对DOM准备情况进行了新的检查。"

您的代码与我的代码类似——我们假设当文档真正准备好时,ready()将异步执行,但正如jQuery人员所说,情况可能并不总是如此。

相关内容

最新更新