Javascript IE6使用此jQuery崩溃

Javascript IE6使用此jQuery崩溃,javascript,jquery,crash,internet-explorer,window,Javascript,Jquery,Crash,Internet Explorer,Window,以下代码每次都会使IE6崩溃。它不断刷新页面,一分钟后崩溃: $(window).bind("load resize", function () { var hnf = $('#header').height() + $('#footer').height(); $('#main').height($(window).height() - (hnf)); $('.fluid').height($('#main').outerHeight()); $('#conte

以下代码每次都会使IE6崩溃。它不断刷新页面,一分钟后崩溃:

$(window).bind("load resize", function () {
    var hnf = $('#header').height() + $('#footer').height();
    $('#main').height($(window).height() - (hnf));
    $('.fluid').height($('#main').outerHeight());
    $('#content').width($('#main').width() - $("#aside").width() - 90);
});
是什么引起的

编辑:好的,
$(窗口)中的“调整大小”。绑定(“加载调整大小”,函数(){
导致了它,我如何修复


非常感谢您的帮助!

即使文档正文尺寸发生更改,IE6也似乎错误地触发了onResize事件


我会寻找一种非jQuery的方式来做你想做的事情。如果你使用CSS来控制页面的固定大小元素,浏览器不会自己处理可变大小的元素吗?

即使文档正文尺寸发生变化,IE6也会错误地触发onResize事件。下面是一个例子


我会寻找一种非jQuery的方式来做你想做的事情。如果你使用CSS来控制页面的固定大小元素,浏览器不会自己处理可变大小的元素吗?

我想这可能与你试图在没有CSS的情况下设置高度和宽度有关。我不确定,但如果我要这样做,我会ld使用JQUERY.css()方法来设置高度和宽度。所以它看起来像这样

$(window).bind("load resize", function () {
    var hnf = $('#header').height() + $('#footer').height();
    $('#main').css("height", ($(window).height() - hnf));
    $('.fluid').css("height", ($('#main').outerHeight()));
    $('#content').css("width", ($('#main').width() - $("#aside").width() - 90));
});

这可能不起作用,我没有测试它。

我想这可能与您试图在没有CSS的情况下设置高度和宽度有关。我不确定,但如果我要这样做,我会使用JQUERY.CSS()方法设置高度和宽度。因此,看起来是这样的

$(window).bind("load resize", function () {
    var hnf = $('#header').height() + $('#footer').height();
    $('#main').css("height", ($(window).height() - hnf));
    $('.fluid').css("height", ($('#main').outerHeight()));
    $('#content').css("width", ($('#main').width() - $("#aside").width() - 90));
});
这可能不起作用。我没有测试它。

修复程序听起来应该起作用。请尝试:

var prevHeight;
$(window).bind("load resize", function () {
  var height = $(window).height();
  if ( prevHeight == height ) 
     return; // hack to prevent recursion in IE6
  prevHeight = height;

  // resize content
  var hnf = $('#header').height() + $('#footer').height();
  $('#main').height(height - (hnf));
  $('.fluid').height($('#main').outerHeight());
  $('#content').width($('#main').width() - $("#aside").width() - 90);
});
请随意将其修饰一下(将prevHeight附加到其他内容上,等等)。

修复程序听起来应该可以工作。尝试:

var prevHeight;
$(window).bind("load resize", function () {
  var height = $(window).height();
  if ( prevHeight == height ) 
     return; // hack to prevent recursion in IE6
  prevHeight = height;

  // resize content
  var hnf = $('#header').height() + $('#footer').height();
  $('#main').height(height - (hnf));
  $('.fluid').height($('#main').outerHeight());
  $('#content').width($('#main').width() - $("#aside").width() - 90);
});

请随意把它修饰一下(附加上其他东西,等等)。

如果每次IE6让我生气时我都有一美元,我会很富有,而且是世界上最愤怒的富人。你会因为这句话得到很多好评。不过我希望我能得到我的解决方案。:)没有XP SP2的情况会发生吗?因为没有XP SP2的IE6在使用jQuery时总是崩溃,所以SP2解决了它。即使它是浏览器错误,您也可以尝试不同版本的jQuery,看看它是否有效。然后,如果您找到一个工作版本,您可以查看源代码,看看是什么引发了IE6中的错误,以及它是如何“修复”或“修复”的“未被工作版本破坏”。这是一个很长的延伸。jQuery的
测试Swarm项目提供了受支持浏览器的测试结果。从此页面选择提交:然后您将看到每个受支持浏览器的每个对应jQuery部件的状态,如下所示:您将找到有关失败的答案(红色标记)对于不同的浏览器,你会知道它是否不仅仅是你的电脑。我想他们只使用最新的浏览器服务包,所以在IE6上可能没有低于SP2的官方测试结果。如果每次IE6让我生气我都有一美元,我会很富有,而且是地球上最愤怒的富人。你会因为这一评论获得很多代表。我希望我能得到更多的支持y解决方案。:)没有XP SP2的IE6会发生这种情况吗?因为没有XP SP2的IE6在使用jQuery时总是会崩溃,所以SP2会解决它。即使是浏览器错误,您也可以尝试不同版本的jQuery,看看它是否有效。然后,如果您找到一个工作版本,您可以查看源代码,看看是什么引发了IE6中的错误,以及它是如何工作的工作版本“已修复”或“未损坏”。这是一个很大的延伸。jQuery的
测试Swarm项目
为受支持的浏览器提供测试结果。从此页面选择提交:然后您将看到每个受支持浏览器的每个对应jQuery部件的状态,如下所示:您将找到有关失败的答案(红色标记)适用于各种浏览器,这样您就可以知道它是否不仅仅是您的计算机。不过,我认为他们只使用最新的浏览器服务包,因此IE6上SP2以下的浏览器可能没有官方测试结果。在这种情况下,您将需要更聪明的解决方案…尝试Drew Wills链接到的修复方案。在这种情况下,您将需要更聪明的解决方案…尝试修复方案Drew Wills链接到。谢谢,但我几乎不知道有什么JS可以在我的代码上实现修复。你能帮我一下吗。谢谢!谢谢,但我几乎不知道有什么JS可以在我的代码上实现修复。你能帮我一下吗。谢谢!