Domanda

Ho combattuto contro la modalità di compatibilità di IE8 tutto il giorno e sto per buttare un mattone a questo.

Ho qualche codice, che utilizza jQuery 1.2 (sì, è vecchio - non può cambiare la situazione), per la ricerca di alcuni record nel nostro web app. I risultati della ricerca possono essere cliccato per visualizzare il contenuto del record (utilizzando .animate () si apre uno spazio sotto la riga e crea un altro TR sotto e inserti HTML i dati da un feed JSON).

In IE8, cliccando su un risultato per visualizzare le forze di contenuti IT di ricarica in modalità di compatibilità, dove funziona bene in tutti gli altri browser (IE7, FF3.0 +, Chrome, Safari). Ho cercato di usare barra degli strumenti degli sviluppatori di IE8 per eseguire il debug e rintracciare perché questo sta accadendo, ma non sono stato in grado di trovare qualsiasi errore o alcuna prova di ciò che potrebbe essere la causa.

Il codice che mostra in anteprima:

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

Facendo un passo attraverso il codice utilizzando gli strumenti di sviluppo di IE8, che viene passato qui e in qualche parte in codice jQuery e che quando rinfresca in modalità di compatibilità. Ho convalidato la JSON, il codice HTML che viene fuori con il W3C ed è tutto bene, sono davvero in perdita quanto a che cosa sta accadendo.

Qualcuno sa come potrei meglio rintracciare quale è la causa, o devo solo forzare la modalità IE7 su queste pagine?

Modifica: La ricerca viene effettuata in un Ajax 'pop-up' che appare sopra la parte superiore dello schermo. E 'di template (HTML di base) viene caricato da un file HTML separato, e iniettato in un div nella parte inferiore della pagina originale. Questo significa che non ci sarebbero i file HTML nidificati (con <html></html> tag, ecc). Sarebbe questo incidere su di essa anche?
Edit 3:. Rimuovere questi tag duplicati non ha riparato il problema

Modifica 2: Ancora non hanno risolto questo. È solo una di quelle cose che IE8 non verranno visualizzati correttamente e messo giù al browser capriccio? Vorrei davvero apprezzare un po 'di aiuto su questo.

È stato utile?

Soluzione 3

Dopo un collega ha fatto qualche ricerca come bene, abbiamo trovato questo qui su SO , dove è stato confermato che max-height sta causando un assert duro in IE8, confermando che si tratta, infatti, di un bug in IE8 come EricLaw postato.

Stavamo usando max-height per lo stile del div che stavamo inserendo il contenuto in, e, a sua volta, causando l'asserzione difficile. La domanda di cui sopra collegato ha un lavoro in giro per chiunque altro di questo errore.

Altri suggerimenti

Con lo costringe a ricarica in modalità di compatibilità vuoi dire che si ottiene una notifica a comparsa palloncino che dice qualcosa come: "Internet Explorer ha riscontrato un problema con questa pagina e si è caricata in modalità compatibilità" ?

Se è così, significa che hai colpito un bug in IE. Chiamato un "assert Hard" significa che il motore di layout si è schiantato (non un AV o qualcosa di eccitante, appena entrati in uno stato irreversibile) e, quindi, IE cerca di fornire all'utente alcuni contenuti usando la vecchio motore di layout.

Se il problema si verifica ancora in IE9, si prega di inviare un bug a http://connect.microsoft.com/ie

grazie!

Avete assicurato il DOCTYPE e X-UA-Compatible sono corrette

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

E aggiungere questo subito dopo il <head>

<meta http-equiv="X-UA-Compatible" content="IE=8">
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top