jQuery $(document).ready()在IE6中失败,但仅在清除Internet临时文件后才会失败

时间:2010-04-22 09:05:22

标签: javascript jquery internet-explorer-6

我在IE6中遇到$(文件).ready 未执行的问题,但只有在清除了Internet临时文件后才会出现问题(实际上这是第一次加载此页面)。刷新页面或后续页面加载时,一切正常。

这是当前的设置:

  • 带有框架的门户页面,这个门户网站页面也有一个window.load方法(也许我们有jQuery准备好的竞争问题?):

    window.onload = function () {
    try {
        expireCookie("COOKIE%2DID");
        loadMenu();
    } catch (pcbException) {
        reportError(pcbException);
    }
    }
    
    • 在此门户网站页面中,我们当前页面已加载。在本页底部我们有:
  

< script language =“javascript”>

     

尝试{

     

$( “#CR”)除去();

     

}    赶上(前){       }

     

$(document).ready(function(){     alert(typeof $); //检查方法是否正在执行     RendererPageIsLoading(); //在组合框中加载数据并隐藏div      });

     

< /脚本>   < /体>

我正在使用最新版本的jQuery(1.4.2)。 编辑:jquery正在加载到当前页面的head部分:

<script language="javascript" type="text/javascript" src="https://fulldomain/js/jquery.js"></script>

以下主题没有带来任何解决方案: jQuery $(document).ready() failing in IE6

2 个答案:

答案 0 :(得分:3)

有人建议(他之后删除了他的回答)将一个方法附加到window.onload确实分离了$(document).ready()事件中定义的方法。但是,由于错误仅在第一次加载页面时发生,因此我认为这必须是缓存问题。

经过进一步调查后,我们发现IE6遇到了透明png无法正确加载的问题。因此浏览器正在等待图像加载,IE6在触发DOM就绪事件之前等待图像。

结论:如果IE6出现问题,还要检查透明png 图像。

答案 1 :(得分:0)

如果要在“/ body”标记之前添加脚本,则无需使用:

$(document).ready(...);

当文件准备就绪时(来自“/ body”和“/ html”)。

如果您的外部JavaScript文件可能比页面加载速度更快,那么它非常有用 - 在这种情况下,它会延迟执行直到DOM准备好(或者在某些浏览器中延迟DOM和HTTP请求...这是更像是window.onload,等待所有图像,例如)。

相关问题