Internet Explorer Troubleshooting – Parte 2

Essa é a parte 2 da série Internet Explorer Troubleshooting que mostra como identificar e depurar scripts. A parte 1 mostra como utilizar as ferramentas para desenvolvedores (F12 Developer Tools), disponíveis à partir do Internet Explorer 8, para ajudar no troubleshooting de problemas relacionados ao código HTML.

Na parte 2 vamos utilizar como exemplo o site https://pacsweb.nmh.org/ami/html/. Observe que ao acessar o site é exibida a mensagem de erro “Your version of MS Script Engine is not sufficient, Centricity Enterprise Web will not function correctly” na etapa de validação do Script Engine, conforme:

Pressione a tecla F12 ou selecione a opção Ferramentas para Desenvolvedores no menu Ferramentas para verificar se existe algum script responsável pela validação do Script Engine.

Até o IE10 a ferramenta F12 exibe a funcionalidade que exibe os scripts do site na aba Script, conforme:

No IE11 para acessar a funcionalidade clique no ícone que corresponde a um bug, conforme:

O próximo passo é procurar pela mensagem de erro “Your version of MS Script Engine is not sufficient” na caixa de busca da ferramenta para localizar onde a mensagem é gerada. Observe, através da imagem abaixo, que a mensagem de erro é gerada em uma função de validação da versão do IE do script checks.js.

Através do código é possível verificar no método IsBrowserVersionAcceptable que existe um erro na lógica que valida a versão do IE. A mensagem de erro deveria ser gerada quando a versão do IE for menor que a 5.5. Entretanto, existe uma condicional que verifica o valor do código principal (major) da versão do IE isoladamente da versão secundária (minor) através do operador lógico OR ( || ). O resultado é que a validação irá gerar a mensagem de erro para as versões do IE que possuem o valor zero na versão secundária (IE6, IE7, IE8, IE9, IE10 e IE11).

A solução nesse caso é alterar o script. Agora vamos supor que o erro esteja ocorrendo no ambiente que não temos permissão para alterar o arquivo (check.js) que contém o código que precisa ser corrigido. Como atuar nesse cenário? Uma solução é usar o Fiddler para obtermos o script para fazermos as alterações e testes localmente sem ter que substituir o arquivo. Para utilizar o Fiddler no IE11 do Windows 8.1 consulte o artigo: Utilizando o Fiddler no Windows 8.1.

O primeiro passo é executar o Fiddler e acessar novamente (ou fazer o refresh) o site https://pacsweb.nmh.org/ami/html/. A segunda etapa é localizar o script checks.js na grid de requests do Fiddler e salvar o script localmente para que possamos alterá-lo.

O próximo passo é corrigir a lógica do script que foi copiado localmente, conforme:

Uma vez que o script foi alterado localmente podemos utilizar o Fiddler para interceptar a chamada ao script do servidor para utilizar o script alterado. Para realizar a configuração, siga os passos:

  1. Localize a linha que contém o request do scritp checks.js.
  2. Na aba AutoResponder, habilite a opção Enable automatic responses
  3. Clique no botão Add Rule
  4. Altere o campo de texto Rule Editor para que o padrão da URL da regra não seja exata e considere apenas a URL https://pacsweb.nmh.org/ami/html/checks.js.
  5. Na segunda caixa de texto informe a localização do script que foi alterado.
  6. Clique no link Test para garantir que a configuração foi realizada com sucesso.
  7. Clique no botão salvar.

Com o Fiddler aberto e com a regra configurada, acesse novamente o site https://pacsweb.nmh.org/ami/html/ (ou faça o refresh da página). Observe que a mensagem de erro que ocorria na etapa de validação do Script Engine foi eliminada.