【发布时间】:2012-01-13 19:18:09
【问题描述】:
显然很多人都遇到过这个问题,但我还没有找到可行的解决方案。
我有一些代码需要在页面加载后运行,所以我把它放在下面的块中:
$(document).ready(function() {
alert("Running initialization");
initialize();
});
function checkDivLoaded() {
if ( $('#footer').length == 0) $.error( 'not ready' );
}
function initialize() {
try{
checkDivLoaded();
...more code here
} catch (err) {
setTimeout(initialize, 200);
}
}
这在所有浏览器中都可以正常工作,IE 除外。在那里,代码根本不执行。
此代码位于页面上我可以放置的最低点(使用 Zend 框架和页面特定的 ready() 函数意味着它可以在页面上的最低位置进行限制)。我检查了 js 文件的包含,这些文件都是从本地版本加载的,它们都有表单
<script type="text/javascript" src=""></script>
有什么想法吗?
注意
当我在 IE 中打开调试器时,它开始正常工作。
【问题讨论】:
-
“..more code here”包含什么?
-
不要将字符串传递给
setTimeout。 -
您的
src是否为空,这会导致问题。我假设你给了它一个真实的 URL,对吧? -
...更多代码是一大堆代码,但 IE 并没有走那么远。在调用 initialize() 之前向 $(document).ready() 添加警报不会被触发。 @Rocket src 不是空的——我只是说明了包含的格式,因为有些人提出这是 IE 中的一个潜在问题。
-
@Elie:好的,我只是在检查:-P