Débogage de JavaScript dans IE7

160

J'ai besoin de déboguer JavaScript dans Internet Explorer 7.

Malheureusement, son débogueur par défaut ne me fournit pas beaucoup d'informations. Il me dit la page sur laquelle l'erreur est apparue (pas le script spécifique) et me donne un numéro de ligne. Je ne sais pas si cela est lié à mon problème.

Ce serait bien si cela pouvait réduire l'erreur à un numéro de ligne sur un script spécifique (comme Firebug peut).

Existe-t-il un addon pour déboguer JavaScript dans IE7 comme Firebug le fait dans Firefox?

Je vous remercie!

Voir également:

IE7 a-t-il un «mode développeur» ou un plugin comme Firefox / Chrome / Safari?

Alex
la source

Réponses:

90

Web Development Helper est très bon.

La barre d'outils IE Dev est souvent utile, mais ne fait malheureusement pas de débogage de script

Bob
la source
4
Il convient de noter, peut-être, que vous devez désactiver "désactiver le débogage" dans les options avancées.
Dan Rosenstark
24
Je ne vois aucune option de débogage de script dans la barre d'outils IE Dev, et la dernière version de Web Development Helper ne fonctionne pas, même après avoir modifié mes préférences avancées et redémarré IE7.
stevebot
9
Le lien Web Development Helper donné ci-dessus est obsolète. Quelqu'un peut-il confirmer qu'il s'agit du même outil hébergé ici? softpedia.com/get/Tweak/Browser-Tweak/…
RMorrisey
3
Oh l'ironie; Le lien de téléchargement de softpedia pour Web Dev Helper meurt dans IE7! (L'erreur redoutée "Opération abandonnée".)
Sean McMillan
1
Je pense que le lien mène à des logiciels malveillants.
arbre
41

La dure vérité est que le seul bon débogueur pour IE est Visual Studio.

Si vous n'avez pas d'argent pour la vraie affaire, téléchargez gratuitement Visual Web Developer 2008 Express Edition Visual Web Developer 2010 Express Edition . Alors que le premier vous permet d'attacher le débogueur à IE déjà en cours d'exécution, le second ne le permet pas (au moins les versions précédentes que j'ai utilisées ne le permettaient pas). Si c'est toujours le cas, l'astuce consiste à créer un projet simple avec une page Web vide, à le «lancer» (il démarre le navigateur), à naviguer maintenant vers la page que vous voulez déboguer et à commencer le débogage.

Microsoft offre Visual Studio complet sur différents événements, généralement avec des restrictions de licence, mais ils permettent de bricoler à la maison. Consultez leur horaire et la liste des cadeaux.

Un autre conseil: essayez d'abord de déboguer votre application Web avec d'autres navigateurs. J'ai eu un grand succès avec Opera. D'une certaine manière, l'émulation d'Opera de IE et de ses bogues était assez proche, mais le débogueur est bien meilleur.

Eugène Lazutkin
la source
2
pour des instructions étape par étape, voir la réponse de @ mitjak
rymo
4
VS n'est pas le seul bon débogueur pour IE, même si je suis d'accord qu'il n'y en a pas beaucoup de bons. C'est le débogueur javascript spécifique à IE que j'utilise depuis des années, bien qu'il ne soit pas gratuit: javascript-debugger.com
Le lien vers VS 2008 a disparu. Maintenant, il va à une page pour VS 2012.
Sean McMillan
Il existe VS 2012 Express Edition, qui est toujours gratuit (l'ancien lien y pointe en fait).
Eugene Lazutkin
1
VS2012 Express nécessite Windows 7. Si vous essayez de déboguer IE7, ce n'est pas utile. Ce dont vous avez besoin est VS2010 Web Express: microsoft.com/web/gallery/…
Mike Post
32

vous voudrez peut-être essayer le débogueur de script Microsoft, il est assez ancien, mais c'est assez utile dans le sens où si vous tombez sur une erreur javascript, le débogueur apparaîtra pour vous montrer quelle ligne est en panne. cela peut parfois devenir irritant lorsque vous surfez normalement, mais vous pouvez le désactiver.

voici un bon démarrage sur la façon d'utiliser cet outil également. COMMENT FAIRE: Déboguer JavaScript dans Internet Explorer

Melaos
la source
Le lien howto est rompu. Voici un lien mis à jour: jonathanboutelle.com/2006/01/16/…
Dana
Excellente route de débogage à faible friction, sans avoir à installer de logiciel tiers.
Jon Hadley
27

J'ai trouvé DebugBar .

Pas aussi bon que Firebug, mais proche.

Alex
la source
3
encore, bien meilleur que la barre d'outils de dev
Sam Saffron
2
Je ne sais pas pourquoi ce n'est pas la réponse acceptée. De loin mieux que tout autre débogueur pour IE.
Tres
1
En fait, j'ai trouvé que le " Companion JS " gratuit mentionné sur leur site fonctionnait le mieux. Il vous indique exactement sur quel fichier JS et sur quel numéro de ligne l'erreur se produit.
Tyler
25

Dans IE7, vous pouvez activer firebug lite pour la page actuelle en collant ce qui suit dans la barre d'adresse:

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);

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

Marc
la source
6
Firebug lite ne fait pas Javascript
Casebash
Je me suis arrêté à FireBug lite avec sa console à déboguer
Eugene Gluhotorenko
Il a une console qui exécute JavaScript, ce que je recherchais.
Alex W
Vraiment utile pour inspecter des éléments sur IE 7. Merci! :)
Leniel Maccaferri
7

Microsoft Script Editor est en effet une option, et parmi celles que j'ai essayées, l'une des plus stables - le débogueur dans IE8 est excellent, mais pour une raison quelconque, chaque fois que je démarre les outils de développement, cela prend un certain temps à IE8, parfois jusqu'à un minute, pour inspecter l'arborescence DOM de ma page. Et après il semble vouloir le faire à chaque rafraîchissement de page, ce qui est une torture.

Vous pouvez inspecter le contenu des variables dans l'éditeur de script Microsoft: si vous fouillez sous Débogage> Fenêtre, vous pouvez activer l'inspection des variables locales, la surveillance, etc.

L'autre option, Visual Web Dev, bien que volumineuse, fonctionne raisonnablement bien. Pour le configurer, procédez comme suit (volé à partir d' ici ):

  1. Le débogage doit être activé dans IE. Allez dans Outils> Options Internet> Avancé et vérifiez que Désactiver le débogage de script (Internet Explorer) n'est pas coché et affichez une notification sur chaque erreur de script est cochée
  2. Créer un nouveau projet Web vide dans VWD
  3. Cliquez avec le bouton droit sur le site dans l'explorateur de solutions en haut à droite, accédez à Parcourir avec et assurez-vous que votre navigateur par défaut est défini sur IE (il est raisonnable de supposer que si vous êtes un développeur Web, IE n'est pas votre navigateur par défaut, auquel cas ce ne sera pas la valeur par défaut .. par défaut)
  4. Appuyez sur F5, IE va s'ouvrir. Accédez à la page que vous souhaitez déboguer.
  5. VWD s'ouvrira maintenant chaque fois que vous rencontrez une erreur de script ou si vous définissez un point d'arrêt dans l'un des fichiers JS. Déboguer!

MISE À JOUR : En passant, si vous rencontrez les mêmes ralentissements que moi avec le débogueur par ailleurs décent d'IE8, il existe une solution de contournement - si vous rencontrez ou faites en sorte que IE rencontre une erreur afin qu'elle affiche le dialogue "Voulez-vous déboguer" et appuyez sur Oui, le débogueur apparaîtra presque instantanément. Il semble que si vous passez "directement" en mode débogage, les outils de développement n'inspectent jamais le DOM. Ce n'est que lorsque vous appuyez sur F12 que cela arrive.

dmkc
la source
Je devrais tester cela un peu plus, mais jusqu'à présent, il semble que le débogueur IE8 fonctionne plus rapidement lors de la navigation en mode de compatibilité. Allez comprendre!
dmkc
1
Si vous utilisez la version Express (gratuite) de VWD, assurez-vous que vous avez fermé TOUTES les fenêtres IE avant l'étape 4 - VWD doit être celui qui démarre IE à neuf pour qu'il le «possède».
rymo
3

IE8 a beaucoup amélioré les outils de développement. Jusque-là, il est préférable d'écrire d'abord javascript pour Firefox, puis de déboguer IE à l'aide des instructions alert ().

Joël Coehoorn
la source
Je ne peux pas attendre IE8 (tant qu'il est à la hauteur du battage médiatique - je n'ai pas encore téléchargé la version bêta)
alex
Maintenant que c'est sorti, j'ai mis à jour, et je dois dire que j'aime le débogueur encore mieux que celui de firebug :)
Joel Coehoorn
@Joel, bien que le débogueur soit génial - une chose qui me dérange (que Firebug a) est un menu contextuel clic droit dans lequel vous pouvez choisir "inspecter l'élément". À ma connaissance, dans IE8, vous devez lancer les outils de développement, puis cliquez sur la flèche, puis recherchez l'élément que vous souhaitez inspecter.
alex
3

Microsoft Script Editor peut être utilisé pour déboguer Javascript dans IE. Il est moins bogué que Microsoft Script Debugger mais possède les mêmes fonctionnalités de base, qui sont malheureusement assez limitées à l'exécution pas à pas. Je n'arrive pas à inspecter les variables ou tout autre truc pratique comme ça. En outre, il n'est livré avec Office XP / 2003 que pour une raison étrange. Plus d'infos ici si vous jouez.

J'ai téléchargé le Visual Web Developer 2008 Express Edition mentionné par Eugene Lazutkin mais je n'ai pas encore eu l'occasion de l'essayer. Je recommanderais d'essayer cela avant l'éditeur / débogueur de script.

Kenny
la source
3

Ce n'est pas un débogueur complet, mais mes extensions DP_DEBUG fournissent des fonctionnalités utiles (je pense) et fonctionnent dans IE, Firefox et Opera (9+).

Vous pouvez «vider» des représentations visuelles d'objets JavaScript complexes (même des objets système), effectuer une journalisation et une synchronisation simplifiées. Le composant fournit des méthodes simples pour l'activer ou le désactiver afin que vous puissiez laisser le débogueur en place pour le travail de production si vous le souhaitez.

DP_Debug

Jim Davis
la source
2

Les outils de développement IE9 ont fonctionné pour moi. Réglez simplement l'élément de menu "Mode navigateur" sur IE7.

Peter Tseng
la source
7
C'est utile, mais IE7 émulé n'est pas tout à fait le même.
alex
Je suppose que cela dépend. Si je peux reproduire un problème dans le mode émulé d'IE9, je le corrigerai ici. Sinon, Firebug Lite est une bonne solution - même si vous aurez besoin d'installer IE7 quelque part.
Peter Tseng
1

Hé, je suis tombé sur le même problème et j'ai trouvé cette application IETESTER . C'est assez génial, c'est une application qui contient IE 5.5, 6 et 7. Peu importe la version d'IE que vous avez actuellement. Cela vous permet d'avoir plusieurs versions côte à côte.

Si vous activez le débogage javascript dans les options IE et que Visual Studio est installé, vous pouvez même déboguer le javascript dans VS avec toutes les options de débogage à votre disposition (montres, points d'arrêt conditionnels, etc.)

Si vous souhaitez démarrer le débogage avant qu'une erreur ne se produise, il vous suffit de mettre la ligne

debugger;

dans votre code JS et cela vous amène dans VS pour commencer le débogage après cette instruction.

C'est absolument incroyable pour moi de tester la compatibilité descendante du code JS.

José
la source
0

Utilisez Internet Explorer 8. Ensuite, essayez l'outil de développement. Vous pouvez également déboguer sur IE 7 en mode de compatibilité

Joberror
la source
17
IE7! = Mode de compatibilité IE8. Il y a des incompatibilités.
thorn̈
1
+1 Au moins IE8 vous indique le nom de fichier du script à l'origine de l'erreur.
Colonel Sponsz le
@thorn, mais il existe un mode IE7. (Peut-être qu'il n'y en avait pas avant?) Donc: normal, mode de compatibilité, mode IE7.
ANeves
1
@ANeves c'est juste des noms différents pour la même chose
thorn̈
4
@ANeves On dirait que le "mode IE7" est juste un "mode de compatibilité" avec un agent utilisateur remplacé par celui utilisé par IE7. Mais je tiens à souligner à nouveau que le mode de compatibilité n'est pas si compatible. Par exemple, reseting une propriété de style via jQuery ressemble à ceci dans IE7 (et d' autres navigateurs): $my.css('z-index', null). Dans IE8, ce code génère une erreur, même dans le mode dit de compatibilité. J'ai donc dû écrire un code comme celui-ci:$my.css('z-index', ie8 ? 'auto' : null)
thorn̈
0

La réponse est simple.

  1. Obtenez Internet Explorer 9
  2. Appuyez sur F12 pour charger les outils de développement
  3. Basculez le mode navigateur sur IE7

commutation du mode navigateur sur IE9

désespéré
la source
6
Parce que ce n'est pas fiable :( Tous les tickets ouverts dans mon projet actuel connecté à IE7 ne sont pas reproductibles dans Vista de Windows 7
AlfeG
4
Cela pourrait être utile si l'erreur est reproductible. Mais il y a des erreurs, qui ne se produisent pas dans l'IE9 avec le mode IE7, mais dans l'original IE7 (même chose pour IE8)
yunzen
0

L'exécution de votre code via un outil d'analyse statique Javascript tel que JSLint peut détecter certaines erreurs IE7 courantes, telles que des virgules de fin dans les définitions d'objets.

Ian Mackinnon
la source
0

Les outils de développement IE8 peuvent passer en mode IE7entrez la description de l'image ici

Viktor
la source
0

Si vous avez encore besoin de déboguer IE 7, le mode d'émulation d'IE 11 fonctionne plutôt bien.

Allez dans le menu: Outils de développement, puis sur l'émulation et réglez-le. Il donne également des informations sur la ligne d'erreur.

Erdal G.
la source
-1

Les outils suivants fonctionnent très bien pour moi:

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

Fournissez une interface utilisateur pratique avec des fonctionnalités telles que la source, le style, le DOM, le script, la vérification HTML. Il affiche également l'erreur réelle dans votre fichier JS (quelle ligne, quel fichier).

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

Fournir une console pour IE6 ou IE7 (qui à l'origine ne prend pas en charge)

  • Capture d'écran

entrez la description de l'image ici

super1ha1
la source