Depurando JavaScript no IE7


160

Preciso depurar JavaScript no Internet Explorer 7.

Infelizmente, seu depurador padrão não fornece muitas informações. Ele indica a página em que o erro apareceu (não o script específico) e fornece um número de linha. Não sei se isso está relacionado ao meu problema.

Seria bom se pudesse restringir o erro a um número de linha em um script específico (como o Firebug).

Existe um complemento para depurar JavaScript no IE7, como o Firebug faz no Firefox?

Obrigado!

Veja também:

O IE7 tem um "modo de desenvolvedor" ou plug-in como o Firefox / Chrome / Safari?

Respostas:


90

O Web Development Helper é muito bom.

A barra de ferramentas IE Dev é frequentemente útil, mas infelizmente não faz depuração de scripts


4
Vale a pena notar, talvez, que você precisa desativar a opção "desativar a depuração" nas opções avançadas.
Dan Rosenstark

24
Não vejo nenhuma opção de depuração de script na barra de ferramentas IE Dev, e a versão mais recente do Web Development Helper não está funcionando, mesmo após alterar minhas preferências avançadas e reiniciar o IE7.
SteveBot

9
O link do Auxiliar de Desenvolvimento da Web fornecido acima está desativado. Alguém pode confirmar que esta é a mesma ferramenta hospedada aqui? softpedia.com/get/Tweak/Browser-Tweak/...
RMorrisey

3
Oh A ironia; O link de download da softpedia para o Web Dev Helper morre no IE7! (O erro temido "Operation Aborted".)
Sean McMillan

1
Eu acho que o link leva a malware.
tree

41

A dura verdade é: o único bom depurador para o IE é o Visual Studio.

Se você não tiver dinheiro para o negócio real, faça o download gratuito do Visual Web Developer 2008 Express Edition Visual Web Developer 2010 Express Edition . Enquanto o primeiro permite anexar o depurador ao IE já em execução, o último não (pelo menos as versões anteriores que eu usei não permitiam isso). Se esse ainda for o caso, o truque é criar um projeto simples com uma página da Web vazia, "executá-lo" (inicia o navegador), agora navegue até a página que você deseja depurar e inicie a depuração.

A Microsoft oferece o Visual Studio completo em diferentes eventos, geralmente com restrições de licença, mas eles permitem ajustes em casa. Verifique a programação e a lista de brindes.

Outra dica: tente depurar seu aplicativo da Web com outros navegadores primeiro. Eu tive um grande sucesso com o Opera. De alguma forma, a emulação do IE e seus bugs pelo Opera foi bem próxima, mas o depurador é muito melhor.


2
Para obter instruções passo-a-passo, consulte @ de mitjak resposta
RYMO

4
O VS não é o único bom depurador para o IE, embora eu concorde que não há muitos bons. Este é o depurador de javascript específico do IE que uso há anos, embora não seja gratuito: javascript-debugger.com

O link para o VS 2008 se foi. Agora ele vai para uma página para VS 2012.
Sean McMillan

Existe o VS 2012 Express Edition, que ainda é gratuito (o link antigo realmente aponta para ele).
Eugene Lazutkin

1
O VS2012 Express requer o Windows 7. Se você está tentando depurar o IE7, isso não ajuda. O que você precisa é do VS2010 Web Express: microsoft.com/web/gallery/…
Mike Post

32

você pode tentar o depurador de scripts da microsoft, que é bastante antigo, mas é bastante útil, se você encontrar algum erro de javascript, o depurador será exibido para mostrar qual linha está bagunçada. às vezes, pode ser irritante quando você surfa normalmente, mas pode desativá-lo.

Aqui está uma boa inicialização sobre como usar essa ferramenta também. COMO FAZER: Depurar JavaScript no Internet Explorer


O link do howto está quebrado. Aqui está um link atualizado: jonathanboutelle.com/2006/01/16/…
Dana

Excelente rota de depuração de baixo atrito, sem precisar instalar nenhum software de terceiros.
quer

27

Eu encontrei o DebugBar .

Não é tão bom quanto o Firebug, mas perto.


3
Ainda assim, muito melhor do que isto é dev barra de ferramentas
Sam Saffron

2
Não sei por que essa não é a resposta aceita. De longe melhor do que qualquer outro depurador para o IE.
Tres

1
Na verdade, achei o " JS complementar " gratuito mencionado no site para funcionar melhor. Ele informa exatamente em qual arquivo JS e número da linha o erro ocorre.
Tyler

25

No IE7, você pode exibir o firebug lite para a página atual colando o seguinte na barra de endereço:

javascript:var firebug=document.createElement('script');firebug.setAttribute('src','http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js');document.body.appendChild(firebug);(function(){if(window.firebug.version){firebug.init();}else{setTimeout(arguments.callee);}})();void(firebug);

Consulte http://getfirebug.com/lite.html .


6
Firebug Lite não faz Javascript
Casebash

Parei no Firebug Lite com o seu console para debug
Eugene Gluhotorenko

Ele tem um console que executa JavaScript, que é o que eu estava procurando.
Alex W

Realmente útil para inspecionar elementos no IE 7. Obrigado! :)
Leniel Maccaferri

7

O Microsoft Script Editor é realmente uma opção, e dentre as que experimentei uma das mais estáveis ​​- o depurador no IE8 é ótimo, mas por alguma razão, sempre que inicio as Ferramentas de Desenvolvimento, o IE8 leva um tempo, às vezes até um minuto, para inspecionar a árvore DOM da minha página. E depois parece querer fazer isso em cada atualização de página, o que é uma tortura.

Você pode inspecionar o conteúdo das variáveis ​​no editor de scripts da Microsoft: se você procurar em Debug> Window, poderá ativar a inspeção de variáveis ​​locais, assistir etc.

A outra opção, o Visual Web Dev, embora volumoso, funciona razoavelmente bem. Para configurá-lo, faça o seguinte (roubado daqui ):

  1. A depuração deve estar ativada no IE. Vá em Ferramentas> Opções da Internet> Avançado e verifique se a opção Desativar depuração de script (Internet Explorer) está desmarcada e a opção Exibir uma notificação sobre todos os erros de script está marcada.
  2. Crie um novo projeto da Web vazio dentro do VWD
  3. Clique com o botão direito do mouse no site no Solutions Explorer, no canto superior direito, vá para Browse With e verifique se o navegador padrão está definido como IE (é razoável supor que se você é desenvolvedor da Web, o IE não é o navegador padrão. esse não será o padrão .. por padrão)
  4. Pressione F5, o IE abrirá. Vá para a página que você deseja depurar.
  5. O VWD agora será aberto sempre que houver um erro de script ou se você definir um ponto de interrupção em um dos arquivos JS. Depure!

ATUALIZAÇÃO : A propósito, se você enfrentar as mesmas lentidões que eu com o depurador decente do IE8, existe uma solução alternativa - se você encontrar ou fizer com que o IE encontre um erro para que apareça a caixa de diálogo "Deseja depurar" e pressione Sim, o depurador será exibido praticamente instantaneamente. Parece que se você for direto ao modo de depuração, as Ferramentas de Desenvolvimento nunca inspecionam o DOM. É somente quando você pressiona F12 que ele faz.


Eu teria que testar isso um pouco mais, mas até agora parece que o depurador do IE8 funciona mais rápido ao navegar no modo de compatibilidade. Vai saber!
Dmkc 15/05/09

1
Se você estiver usando a versão Express (gratuita) do VWD, verifique se você fechou TODAS as janelas do IE antes da etapa 4 - o VWD deve ser o único a iniciar o IE novamente para que ele "seja o proprietário".
Rymo

3

O IE8 melhorou muito as ferramentas de desenvolvedor. Até lá, é melhor escrever primeiro o javascript do firefox e depois depurar o IE usando as instruções alert ().


Mal posso esperar para o IE8 (contanto que ele faz jus ao hype - Eu ainda tenho que fazer o download do beta)
alex

Agora que ele está fora eu udpated, e devo dizer que eu como o depurador ainda melhor do que o Firebug de :)
Joel Coehoorn

@ Joel, embora o depurador seja ótimo - uma coisa que me incomoda (que o Firebug possui) é um menu de contexto com o botão direito do mouse, onde você pode escolher "inspecionar elemento". Que eu saiba, no IE8, você precisa iniciar as ferramentas do desenvolvedor, clicar na seta e encontrar o elemento que deseja inspecionar.
Alex

3

O Microsoft Script Editor pode ser usado para depurar Javascript no IE. É menos problemático que o Microsoft Script Debugger, mas tem a mesma funcionalidade básica, que infelizmente se limita a avançar na execução. Não consigo inspecionar variáveis ​​ou qualquer coisa útil como essa. Além disso, ele só foi enviado com o Office XP / 2003 por algum motivo bizarro. Mais informações aqui, se você é um jogo.

Fiz o download do Visual Web Developer 2008 Express Edition mencionado por Eugene Lazutkin, mas ainda não tive a chance de experimentá-lo. Eu recomendo tentar isso antes do Script Editor / Debugger.


3

Não é um depurador completo, mas minhas extensões DP_DEBUG fornecem algumas (acho) funcionalidades úteis e funcionam no IE, Firefox e Opera (9+).

Você pode "despejar" representações visuais de objetos JavaScript complexos (mesmo objetos do sistema), fazer log e tempo simplificados. O componente fornece métodos simples para ativá-lo ou desativá-lo, para que você possa deixar o depurador no local para o trabalho de produção, se desejar.

DP_Debug


2

As ferramentas de desenvolvedor do IE9 funcionaram para mim. Basta definir o item de menu "Modo Navegador" como IE7.


7
Isso é útil, mas o IE7 emulado não é exatamente o mesmo.
Alex

Eu acho que depende. Se eu conseguir reproduzir um problema no modo emulado do IE9, eu o corrigirei lá. Caso contrário, o Firebug Lite é uma boa solução - embora você precise ter o IE7 instalado em algum lugar.
Peter Tseng #

1

Ei, me deparei com o mesmo problema e achei este o aplicativo IETESTER . É incrível, é um aplicativo que possui o IE 5.5,6 e 7 incluídos nele. Não importa qual versão do IE você possui atualmente. Isso permite que você tenha várias versões lado a lado.

Se você habilitar a depuração de javascript nas opções do IE e o Visual Studio instalado, você poderá até depurar o javascript no VS com todas as opções de depuração disponíveis para você (relógios, pontos de interrupção condicionais, etc.)

Se você deseja iniciar a depuração antes que ocorra um erro, basta colocar a linha

debugger;

no seu código JS e isso o levará ao VS para iniciar a depuração após esta declaração.

Isso é absolutamente incrível para mim, ao testar a compatibilidade com versões anteriores do código JS.


0

Use o Internet Explorer 8. Em seguida, tente a ferramenta de desenvolvedor. Você pode depurar com base no IE 7 também no modo de compatibilidade


17
IE7! = IE8 modo compatível. Existem incompatibilidades.
precisa saber é o seguinte

1
+1 Pelo menos o IE8 informa o nome do arquivo do script que está causando o erro.
Coronel Sponsz

@ espinho, mas existe um modo IE7. (Talvez não houvesse, antes?) Portanto: modo normal, compatibilidade, modo IE7.
ANRS 15/03

1
@ANeves É apenas nomes diferentes para a mesma coisa
espinho

4
@ANeves Parece que o "modo IE7" é apenas "modo de compatibilidade", com um agente de usuário alterado para o usado pelo IE7. Mas quero enfatizar novamente que o modo de compatibilidade não é tão compatível. Por exemplo, zerando uma propriedade de estilo via jQuery parece com isso no IE7 (e outros navegadores): $my.css('z-index', null). No IE8, esse código gera um erro, mesmo no chamado modo de compatibilidade. Então eu tive que escrever um código como este:$my.css('z-index', ie8 ? 'auto' : null)
thorn̈ 18/03


0

A resposta é simples.

  1. Obtenha o Internet Explorer 9
  2. Pressione F12 para carregar as Ferramentas do desenvolvedor
  3. Mude o modo do navegador para o IE7

alternando o modo de navegador no IE9


6
Porque não é confiável :( Todos os tickets abertos no meu projeto atual conectado ao IE7 não são reproduzíveis no Vista do Windows 7
AlfeG

4
Pode ser útil, se o erro for reproduzível. Mas existem alguns erros que não ocorrem no IE9 com o modo IE7, mas no IE7 original (o mesmo para o IE8)
yunzen

0

A execução do seu código por meio de uma ferramenta de análise estática Javascript, como JSLint, pode detectar alguns erros comuns do IE7, como vírgulas finais nas definições de objetos.


0

As Ferramentas do desenvolvedor do IE8 podem alternar para o modo IE7insira a descrição da imagem aqui


0

Se você ainda precisa depurar o IE 7, o modo de emulação do IE 11 está funcionando muito bem.

Vá para o menu: Dev Tools, depois para emular e defina-o. Também fornece informações da linha de erro.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.