这看起来很奇怪。在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人员所说,情况可能并不总是如此。