2010-01-04 61 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