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?

alex
fonte

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

Prumo
fonte
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.

Eugene Lazutkin
fonte
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

Melaos
fonte
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.

alex
fonte
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 .

Marc
fonte
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.

dmkc
fonte
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 ().

Joel Coehoorn
fonte
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.

Kenny
fonte
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

Jim Davis
fonte
2

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

Peter Tseng
fonte
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.

Jose
fonte
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

Joberror
fonte
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

desanimar
fonte
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.

Ian Mackinnon
fonte
0

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

Viktor
fonte
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.

Erdal G.
fonte
-1

As seguintes ferramentas funcionam muito bem para mim:

1) http://www.debugbar.com/

Forneça uma interface de usuário conveniente para recursos como origem, estilo, DOM, Script, verificação de HTML. Também mostra o erro real no seu arquivo JS (qual linha, qual arquivo).

2) http://www.my-debugbar.com/wiki/CompanionJS/Installing

Forneça um console para o IE6 ou IE7 (que originalmente não suporta)

  • Captura de tela

insira a descrição da imagem aqui

super1ha1
fonte