2010-01-04 60 views
0

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

$(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() {的“调整大小”是造成它,我该如何解决?

非常感谢您的帮助!

+10

如果我每次有一美元的时候IE6让我生气,我会变得富有,并且是地球上最愤怒的富人。 – 2010-01-04 17:42:19

+0

你会得到很多代表该评论。我希望我能得到我的解决方案。 :) – 3zzy 2010-01-04 17:56:49

+0

这是在没有XP SP2的情况下发生的吗?由于没有XP SP2的IE6一直使用jQuery崩溃,所以SP2解决了这个问题。 – 2010-01-04 18:08:20

回答

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别的东西,等等)。

+0

仍然崩溃! :( – 3zzy 2010-01-04 17:59:26

+0

在这种情况下,你需要一些更聪明的东西...尝试修复德鲁威尔斯链接到。 – Shog9 2010-01-04 18:01:59

+0

是的,确实有效!谢谢堆!! :) – 3zzy 2010-01-04 18:15:29

3

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

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

+0

谢谢,但我几乎不知道任何JS来执行我的代码修复。你能帮忙吗?谢谢! – 3zzy 2010-01-04 18:05:10

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)); 
}); 

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

+0

不,不变。我编辑了原始描述。 – 3zzy 2010-01-04 17:53:22