web-dev-qa-db-fra.com

Déboguer une boîte de dialogue modale (showModalDialog) dans IE

Je veux déboguer (examiner DOM, utiliser la console JS interactive, etc.) une partie d'une application Web qui se trouve dans une boîte de dialogue modale créée par showModalDialog().

Je ne trouve pas de moyen d'utiliser les outils de développement IE-8 standard pour cela; La boîte de dialogue n'a pas de barre d'outils et le raccourci habituel (F12) ne fonctionne pas.


Une autre SO question (j'ai malheureusement perdu le lien vers) a suggéré que la seule solution est de remplacer (peut-être temporairement) showModalDialog() par une ancienne window.open(). Si tel est le cas, existe-t-il une manière simple de procéder?

Mises en garde:

  • L'application se soucie de transmettre dialogArguments et de la valeur de retour de showModalDialog
  • Je ne peux pas utiliser d'autres navigateurs, FF + Firebug, etc.
35
hugomg

F12 fonctionne pour faire apparaître les outils de développement si vous activez la barre d'adresse.

Allez Outils/Options Internet/Sécurité/(choisissez la bonne zone pour votre site)/Niveau personnalisé Sous "Divers" Sous "Autoriser les sites Web à ouvrir des fenêtres sans adresse ni barre d'état", choisissez "Désactiver".

Source: https://stackoverflow.com/a/10984858/79835

63
row1

je le fais en créant une erreur dans le code js, qui affiche ensuite la fenêtre d'erreur vous demandant si vous souhaitez déboguer le script.

une façon de le faire serait d'appeler une méthode inexistante quelque part dans le code.

par exemple. blabla ();

7
H77

Ce que je fais lorsque je débogue des fenêtres modales, ce sont deux choses.

  • Vous pouvez inclure dans votre code js le débogueur d'instructions; cela arrêtera l'exécution de js comme si vous aviez mis un point d'arrêt.
  • Vous pouvez également ouvrir les outils de développement ie avant d'ouvrir la fenêtre modale et, une fois qu'il est ouvert, vous pouvez consulter le code généré dans l'onglet script, ajouter des points d'arrêt, suspendre l'exécution, ... tout ce dont vous avez besoin.

J'espère que cela aide!

2
albervera

Vous pouvez maintenant mettre le mot debugger sans guillemets dans votre javascript.

IE et Chrome devrait tous deux se casser dessus comme si vous aviez défini un point d'arrêt dessus. Assurez-vous qu'il est sur une ligne par lui-même. Appuyez sur F12 pour ouvrir le débogueur du navigateur, puis actualisez votre page ou déclenchez l'événement pour exécuter votre javascript et le débogueur doit afficher automatiquement le code avec le point d'arrêt défini.

2
Bill