IE6与这个jQuery崩溃了

时间:2010-01-04 17:36:07

标签: 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());
    $('#content').width($('#main').width() - $("#aside").width() - 90);
});

..什么导致它?

编辑:好$(window).bind("load resize", function () {中的“调整大小”导致它,我该如何修复?

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:3)

即使文档正文尺寸发生变化,IE6也会错误地触发onResize事件。这是一个link with more information

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

答案 1 :(得分:2)

修复Drew Wills links to听起来应该有效。尝试:

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 附加到别的东西等)。

答案 2 :(得分:0)

我认为这可能与您尝试在没有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));
});

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