2010-01-04 2 views
0

Le code suivant se bloque IE6 à chaque fois. Il garde rafraîchir la page et se bloque après une minute:IE6 se bloque avec ce 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); 
}); 

..whats cause?

EDIT: D'accord le « resize » dans $(window).bind("load resize", function() { est à l'origine, comment puis-je résoudre ce problème?

Un grand merci pour votre aide!

+10

Si j'avais un dollar à chaque fois que IE6 me mettait en colère, je serais riche, et le plus riche gars de la planète. –

+0

Vous obtiendrez beaucoup de représentant pour ce commentaire. J'espère avoir ma solution. :) – 3zzy

+0

Est-ce que cela se passe avec notre sans XP SP2? Parce que IE6 sans XP SP2 se bloque tout le temps avec jQuery, SP2 le résout. –

Répondre

2

Le correctif Drew Wills links to semble que cela devrait fonctionner. Essayez:

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

Ne hésitez pas à Gracieuse un peu (joindre prevHeight à autre chose, etc.).

+0

Toujours des plantages! :( – 3zzy

+0

Dans ce cas, vous aurez besoin de quelque chose d'un peu plus intelligent ... Essayez le lien fixe Drew Wills à – Shog9

+0

Oui, en effet ça marche! Merci tas !! :) – 3zzy

3

Il semble que IE6 se déclenche de manière incorrecte l'événement onResize même lorsque les dimensions du corps du document changent. Voici un link with more information.

je chercherais une façon non-jQuery pour faire ce que vous voulez. Si vous utilisez CSS pour contrôler les éléments de taille fixe de votre page, le navigateur ne s'occupera-t-il pas des éléments de taille variable?

+0

Merci, mais je connais à peine n'importe quel JS pour implémenter le correctif sur mon code. Peux-tu aider s'il te plait. Merci! – 3zzy

0

Je pense qu'il pourrait avoir à faire avec le fait que vous essayez de régler la hauteur et la largeur sans CSS. Je ne suis pas sûr mais si j'allais le faire j'emploierais la méthode .css() de JQUERY pour définir la taille et la largeur. donc cela ressemblerait à ceci,

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

Cela pourrait ne pas fonctionner Je ne l'ai pas testé.

+0

non, toujours la même chose. J'ai modifié la description originale. – 3zzy