【问题标题】:jQuery $(document).ready() failing in IE6 but only after clearing Temporary Internet FilesjQuery $(document).ready() 在 IE6 中失败,但仅在清除 Internet 临时文件之后
【发布时间】:2010-04-22 09:05:22
【问题描述】:

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

这是当前设置:

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

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

试试{

$("#CR").remove();

} 抓住(前){ }

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

脚本> 正文>

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

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

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

【问题讨论】:

  • 你是如何加载 jQuery 的?这可能是您出错的原因。
  • “当前页面”如何被“加载”?您是说在父页面中设置iframe src 吗?
  • 我们使用的是框架集/框架,而不是 iframe。使用的代码 (target=frame): if (typeof target.location == "object") { target.location.href = url; } 其他 { 目标.src = url; }

标签: javascript jquery internet-explorer-6


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    文档准备就绪(从“/body”和“/html”开始)。

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

    【讨论】:

    • 拥有$(document).ready(...); 可能仍然是一个好主意,以防稍后在文档中移动代码。这样就不用修改代码了。
    • 我同意克里斯托弗的观点。 $(document).ready(...); 还允许将所有 javascript 移动到单独的文件中,并将其与 HTML 完全分开。我认为这对于较大的代码文件非常有用。
    • 我实际上认为你应该在适当的时候使用 $(document).ready(...) - 而不是作为规则或“以防万一”。作为开发人员意味着考虑您的代码,而不是编写不需要的代码。 @Christopher Parker - 在移动代码时添加它,即在需要时添加它 - 而不是之前。 @Bart - 在将脚本移动到单独的文件时添加它 - 而不是之前。
    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多