Pergunta

Eu tenho lutado contra o modo de compatibilidade do IE8 o dia todo e estou prestes a jogar um tijolo nisso.

Eu tenho algum código, que usa o JQuery 1.2 (sim, é antigo - não posso mudar isso), para pesquisar alguns registros em nosso aplicativo da Web. Os resultados da pesquisa podem ser clicados para visualizar o conteúdo do registro (usando .animate (), ele abre um espaço sob a linha e cria outro TR por baixo e insere dados HTML de um feed json).

No IE8, clicando em um resultado para visualizar o conteúdo a força a recarregar no modo de compatibilidade, onde funciona bem em todos os outros navegadores (IE7, FF3.0+, Chrome, Safari). Eu tenho tentado usar a barra de ferramentas do desenvolvedor do IE8 para depurar e rastrear por que isso está acontecendo, mas não consegui encontrar nenhum erro ou evidência do que possa estar causando.

Código que mostra visualização:

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

Passando pelo código usando as ferramentas de desenvolvedor do IE8, ele é passado aqui e entrando em algum lugar no código do jQuery e é quando ele atualiza no modo de compatibilidade. Eu validei o JSON, o código HTML que sai com o W3C e está tudo bem, estou realmente sem saber o que está acontecendo.

Alguém sabe como posso rastrear melhor o que está causando, ou devo apenas forçar o modo IE7 nessas páginas?

EDIT: A pesquisa é realizada em um 'pop -up' do Ajax que aparece na parte superior da tela. Seu modelo (Base HTML) é carregado de um arquivo HTML separado e injetado em uma div na parte inferior da página original. Isso significa que haveria arquivos HTML aninhados (com <html></html> tags etc). Isso afetaria também?
EDIT 3: A remoção dessas tags duplicadas não corrige o problema.

EDIT 2: Ainda não resolveu isso. É apenas uma daquelas coisas que o IE8 não exibirá corretamente e a colocará no Browser Quirk? Eu realmente apreciaria alguma ajuda nisso.

Foi útil?

Solução 3

Depois que um colega também pesquisou, descobrimos isso aqui em So, onde foi confirmado que o Max-Hight está causando uma afirmação difícil no IE8, confirmando que é, de fato, um bug no IE8 como Ericlaw postou.

Estávamos usando o Max-Hight para o estilo da div em que estávamos inserindo o conteúdo e, por sua vez, causando a afirmação difícil. A pergunta vinculada acima tem um trabalho para qualquer outra pessoa que encontre esse problema.

Outras dicas

Por força a recarregar no modo de compatibilidade Você quer dizer que recebe uma notificação de balão de flyout que diz algo como: "O Internet Explorer encontrou um problema com esta página e a carregou no modo de compatibilidade"?

Nesse caso, isso significa que você acertou um bug no IE. Chamado de "afirmação difícil", significa que o mecanismo de layout travou (não um AV ou qualquer coisa emocionante, ele apenas entrou em um estado irrecuperável) e, portanto, ou seja, tenta fornecer ao usuário algum Conteúdo usando o mecanismo de layout mais antigo.

Se o problema ainda ocorrer no IE9, registre um bug em http://connect.microsoft.com/ie

obrigado!

Você garantiu que seu doctype e x-ua compatíveis estão corretos

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

E adicione isso logo após o <head>

<meta http-equiv="X-UA-Compatible" content="IE=8">
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top