Por que o IE8 em execução no XP e no Win7 Virtual Machine exclui o histórico enquanto navega no mesmo site com o roteamento javascript?

0

Estou usando o sammy.js com meu aplicativo da Web asp.net mvc para roteamento no lado do cliente, para fornecer uma experiência de usuário de página única. Eu criei uma aplicação de demonstração que funciona bem no IE9 + e outros navegadores modernos. No entanto, durante a execução no IE8 no XP e Win7, estou enfrentando um problema estranho. Enquanto navega neste site de demonstração, o IE8 lembra-se da navegação para trás e para a frente para a navegação inicial e, em seguida, esquece-se totalmente do histórico de navegação ou dos passos que tomei para alcançar o pagina atual. Assim, o botão Voltar fica desativado, pois não há histórico de navegação vinculado. Isso não está acontecendo em outros navegadores e eles se lembram das páginas que estou navegando.

Este é o link do script que escrevi onde defini minhas rotas sammy.js.

A estrutura do meu aplicativo é assim: um usuário:

  • chega ao link
  • é mostrada uma página de login por #/ route
  • se a página inicial autenticada for mostrada, o que é resultado da ação post do ajax.
  • home-page tem muitas opções para ir para a página de detalhes, que é o resultado da ação post do ajax.

Agora, o IE8 lembra apenas algumas dessas etapas, mas continua excluindo os itens do histórico na sessão de navegação por conta própria. Eu tentei usar o depurador de scripts do IE e nenhum erro foi mostrado.

Em todas as rotas, também tentei usar alert(history.length); , o que dá um número aleatório diferente, não que eu estivesse esperando, como o +1, todas as vezes em que visito uma nova página. Então, encontrei esta informação de suporte no site da Microsoft. Desabilitar o recurso de recuperação automática de falhas não ajudou nesse caso.

Não consigo descobrir o motivo por trás desse problema estranho. Os códigos funcionam bem para outros navegadores. Eu também tentei redefinir o IE8 no XP e no Win7.

Seria muito útil se alguém pudesse me dizer o que está faltando ou fazendo errado.

Felicidades

    
por Siddharth Pandey 26.02.2014 / 12:03

1 resposta

0

Eu realmente tentei muitas coisas para identificar qualquer possível motivo do problema acima. Até mesmo reescrevi todo o código de navegação do meu javascript e verifiquei o código do lado do servidor.

Mas o único lugar onde obtive a solução está no site: enhanie que afirma que há um bug no IE8 que se lê como:

IE0012: IE Travellog broken when navigating back/away from a page with a large POST form If there is a form input field with a value longer than 523,659 characters, when you navigate away from the page, IE may clear the current session's travellog (similar to history), disabling the back and forward buttons. Repros in IE6 & IE7.

Existem as seguintes soluções que você pode escolher:

  • Verifique o campo de entrada que contém vários caracteres, conforme mencionado acima, e solucione seu problema.
  • Se você tiver controle sobre o sistema no qual o IE8 será usado, você poderá adicionar a seguinte chave de registro nessa máquina. Não há chave existente, portanto, você precisa adicionar uma nova:

    [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ TravelLog] "MaxSize" = dword: ffffffff

Estou muito relaxado para encontrar essa informação, pois passei muito tempo para resolver esse problema. Espero que isso ajude alguém.

    
por 03.03.2014 / 11:51