Frage

Ich war im Kampf gegen IE8 Kompatibilitätsmodus den ganzen Tag und ich bin über einen Stein auf sie einzuspannen.

ich einen Code haben, welche Anwendungen jquery 1.2 (ja, es ist alt - kann das nicht ändern), für einige Datensätze in unserer Web-App zu suchen. Die Ergebnisse der Suche können angeklickt werden, um die Inhalte des Datensatzes anzuzeigen (unter Verwendung .animate () es öffnet sich ein Raum unter der Reihe und schafft eine andere TR unterhalb und Einsätze HTML-Daten aus einer JSON-Feed).

In IE8 auf einem Ergebnis Anklicken des Inhalt zwingt sie zum Nachladen im Kompatibilitätsmodus zu sehen, wo es gut in allen anderen Browsern (IE7, FF3.0 +, Chrome, Safari). Ich habe versucht, IE8 Entwickler-Symbolleiste Debuggen zu verwenden und die Spur zu kommen, warum dies geschieht, aber ich habe keine Fehler finden kann oder keine Beweise von dem, was könnte es verursachen.

Code gibt die Vorschau:

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

Code-Stepping durch IE8 Entwickler-Tools, wird es passiert hier und in irgendwo in jQuery-Code und das ist, wenn es im Kompatibilitätsmodus aktualisiert. Ich habe die JSON, den HTML-Code validiert, die mit w3c kommt heraus und es ist alles in Ordnung, ich bin wirklich ratlos, was los ist.

Wer weiß, wie ich besser nach unten könnte verfolgen, was es verursacht, oder soll ich zwingen IE7-Modus nur auf diesen Seiten?

Edit: Die Suche wird in ein Ajax ‚Pop-up‘ durchgeführt, die über den oberen Rand des Bildschirms angezeigt wird. Es ist Vorlage (Basis-HTML) aus einer separaten HTML-Datei geladen und in ein div am unteren Rand der Originalseite injiziert. Das heißt, es würde verschachtelte HTML-Dateien (mit <html></html>-Tags usw.). Würde dies beeinflusst es auch?
Bearbeiten. 3: diese doppelten Umbauten zu entfernen nicht das Problem beheben

Edit 2: Sie haben noch nicht gelöst. Ist es nur eines dieser Dinge, dass IE8 nicht richtig und es angezeigt wird gestellt Browser Marotte nach unten? Ich würde wirklich etwas Hilfe zu diesem Thema zu schätzen wissen.

War es hilfreich?

Lösung 3

Nachdem ein Kollege einige der Suche und haben, fanden wir dieses hier auf SO , wo es gewesen ist bestätigt, dass max-height eine harte assert in IE8 verursacht, was bestätigt, dass es ist in der Tat geschrieben um einen Fehler in IE8 als EricLaw.

Wir wurden mit max-height für den Stil des div wir den Inhalt in wurden eingeführt wird, und wiederum, was die harte assert. Die oben verlinkte Frage hat eine Arbeit um für jemanden dieses Problem zu begegnen.

Andere Tipps

Mit dem zwingt sie zum Nachladen im Kompatibilitätsmodus meinen Sie, dass Sie eine Flyout-Ballon Benachrichtigung erhalten, dass etwas sagt wie: „Internet Explorer hat ein Problem mit dieser Seite gestoßen und hat es im Kompatibilitätsmodus geladen“ ?

Wenn ja, das bedeutet, dass Sie einen Fehler in IE getroffen haben. Genannt „Hard assert“ bedeutet dies, dass die Layout-Engine abgestürzt (kein AV oder etwas aufregend, es ist nur in einen nicht behebbar Zustand bekommt) und damit versucht IE den Anwender zur Verfügung zu stellen einig Inhalt durch die Verwendung von älteres Layout-Engine.

Wenn das Problem in IE9 immer noch auftritt, wenden Sie sich bitte einen Bug bei http://connect.microsoft.com/ie Datei

Danke!

Haben Sie sichergestellt, Ihre DOCTYPE und X-UA-Compatible korrekt sind

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

Und fügen Sie diese direkt nach dem <head>

<meta http-equiv="X-UA-Compatible" content="IE=8">
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top