Question

Je me bats contre le mode de compatibilité IE8 toute la journée et je suis sur le mandrin une brique à elle.

J'ai un code, qui utilise jquery 1.2 (oui, il est vieux - ne peut pas changer cela), pour rechercher des enregistrements dans notre application web. Les résultats de la recherche peuvent être cliqué sur le bouton pour afficher le contenu de l'enregistrement (en utilisant .animate () ouvre un espace sous la ligne et crée une autre TR dessous et insère des données HTML à partir d'un flux JSON).

Dans IE8, en cliquant sur un résultat pour afficher les forces de contenu pour recharger en mode de compatibilité, où il fonctionne très bien dans tous les autres navigateurs (IE7, FF3.0 +, Chrome, Safari). J'ai essayé d'utiliser la barre d'outils de développeur de IE8 pour déboguer et traquer pourquoi cela se passe mais je ne l'ai pas été en mesure de trouver une erreur ou toute preuve de ce qui pourrait être la cause.

Le code qui affiche l'aperçu:

// Code that binds a click to open the result preview:
var _tr = $('<tr class="outline" id=' + val.assessment.assessmentId + '></tr>').bind("click", msi.reuseAssessment.preview);

...

// in msi.reuseAssessment.preview()
var url = "/direct/msi-assessment/" + assessmentId + "/assessmentHtml.json?no-cache=true";
jQuery.ajax({
    type: "GET",
    url: url,
    dataType: "json",
    success: function(d, textStatus){
        var _content = d.assessmentHtml;
        var _preview = $("<tr id=" + assessmentId + "></tr>");

        // loadContent 
        _tr.after(_preview.animate({
            height: 50
        }, 500, 0, function() {
            msi.reuseAssessment.drawPreview(this, _content); // Puts the content from the json into a td
        }));
    },
    error: function(xmlHttpReq, status, errorThrown) {
        // display error msg
    }
});

Parcourant le code à l'aide des outils de développement de IE8, il se passe ici et dans quelque part dans le code de jQuery et qui est quand il rafraîchit en mode de compatibilité. J'ai validé le JSON, le code HTML qui vient avec w3c et il est très bien, je suis vraiment à une perte de ce qui se passe.

Est-ce que quelqu'un sait comment je pourrais mieux traquer ce qui cause, ou devrais-je forcer simplement le mode IE7 sur ces pages?

Edit: La recherche est effectuée dans un ajax « pop-up » qui apparaît sur le haut de l'écran. Il est modèle (base HTML) est chargé à partir d'un fichier HTML distinct, et injecté dans un div au bas de la page originale. Cela signifie qu'il y aurait imbriqué des fichiers HTML (avec des balises <html></html> etc). Serait-ce affecter aussi?
Edit 3:. La suppression de ces balises en double ne résout pas le problème

Edit 2: ont toujours pas résolu cela. Est-ce juste une de ces choses que IE8 ne sera pas afficher correctement et de le mettre vers le bas pour bizarrerie du navigateur? Je serais vraiment reconnaissant de l'aide à ce sujet.

Était-ce utile?

La solution 3

Après un collègue fait quelques recherches aussi bien, nous avons trouvé cette ici sur le SO , où il a été confirmé que max-hauteur est à l'origine d'un assert dur dans IE8, ce qui confirme qu'il est, en effet, un bug dans IE8 comme EricLaw affiché.

Nous utilisions max-hauteur pour le style de la div nous insérons le contenu dans, et à son tour, ce qui provoque l'assert dur. La question liée ci-dessus a un travail autour pour toute personne rencontrant autre problème.

Autres conseils

Par forces pour recharger en mode de compatibilité Voulez-vous dire que vous recevez une notification de ballon icône déroulante qui dit quelque chose comme: « Internet Explorer a rencontré un problème avec cette page et il a chargé en mode de compatibilité » ?

Si oui, cela signifie que vous avez atteint un bug dans IE. Qualifiée de « dur affirmer », cela signifie que le moteur de mise en page est écrasé (pas un AV ou quelque chose d'excitant, juste entré dans un état irrécupérable) et donc IE essaie de fournir à l'utilisateur un contenu en utilisant le ancien moteur de mise en page.

Si le problème persiste dans IE9, s'il vous plaît un bug à fichier http://connect.microsoft.com/ie

merci!

Avez-vous assuré votre DOCTYPE et X-UA-Compatible sont corrects

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Et ajoutez ceci juste après la <head>

<meta http-equiv="X-UA-Compatible" content="IE=8">
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top