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:
- Localize a linha que contém o request do scritp checks.js.
- Na aba AutoResponder, habilite a opção Enable automatic responses
- Clique no botão Add Rule
- 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.
- Na segunda caixa de texto informe a localização do script que foi alterado.
- Clique no link Test para garantir que a configuração foi realizada com sucesso.
- 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.