首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE7 jQuery(文档).ready()问题

IE7 jQuery(文档).ready()问题
EN

Stack Overflow用户
提问于 2010-05-26 19:27:33
回答 2查看 7.2K关注 0票数 6

我有一个页面在Firefox中工作得很好,但在IE中抛出了一个错误。我正在动态加载jQuery (如果它还没有加载),然后在jQuery(document).ready()块中做一些事情。但是,IE在命中jQuery(文档).ready()块时会抛出可怕的"Object expected“错误。

您可以在此处查看完整的页面代码:http://www.pastie.org/977767

IE在jQuery(文档).ready()上抛出了错误。

你有什么想法吗?同样,这在Firefox中运行得很好。IE似乎认为jQuery已经加载,但实际上还没有加载,或者当遇到jQuery(document).ready()块时,jQuery仍在加载?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-26 19:33:39

当您将脚本附加到文档时,它将被异步下载。在IE中,以下脚本...

代码语言:javascript
复制
try{
jQuery(document).ready(function() {
    jQuery.getScript("/CalendarViewer/js/utils.js", function(){
        jQuery.getScript("/CalendarViewer/js/groupcatselector.js", function(){
            jQuery.getScript("/CalendarViewer/js/calendarportlet.js", function(){
                jQuery.getScript("/CalendarViewer/js/calendarportletmain.js", function(){
                    var cpm = calendarportletmain;
                    cpm.doEditDefaults("V_7f208bca412b42a68c19eb104bf46f14", "/CalendarViewer", groupCats_V_7f208bca412b42a68c19eb104bf46f14);
                });
            });
        });
    });
});
}catch(err){
    alert("error in view.jsp="+err.number+" "+err.description);
}

在IE完成下载和解析jQuery脚本之前解析并执行...is。如果Firefox已经缓存了脚本,这可能不是Firefox的情况,下载它不需要时间,并且可以立即解析。它可能与解析器的工作方式不同,Firefox会在脚本下载后立即对其进行解析,而IE会将解析排队,直到线程空闲。

您可以将此代码移到setUpJquery函数的末尾,这意味着只有在jQuery对象可用时才会执行它。或者,您可以将代码放在它自己的函数中,然后从setUpJquery函数调用该函数。

票数 2
EN

Stack Overflow用户

发布于 2011-02-11 01:00:44

我绕过它的方式是:

代码语言:javascript
复制
$(document).ready( function () {
   document_init();
});

function document_init() {
  try{

    checkDivLoaded();

    [ ... do more stuff ... ]

  } catch( err ) {
    setTimeout('document_init()', 200);
  }
}

function checkDivLoaded() {
    if ( $('#targetDiv').length == 0) $jquery.error( 'not ready' );
}

它不是很漂亮,但它很有效。它可以跨多个文件工作,在我能想到的(我关心的)每一个浏览器中,这意味着你不必弄乱父页面的源代码。这样你就可以不使用标签了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2912451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档