Lorsque j'ouvre les outils de développement dans Google Chrome, je vois toutes sortes de fonctionnalités comme les profils, les chronologies et les audits, mais les fonctionnalités de base comme la possibilité de définir des points d'arrêt à la fois dans les fichiers js et dans le code html et javascript sont manquantes! J'ai essayé d'utiliser la console javascript, qui est elle-même boguée - par exemple, une fois qu'elle rencontre une erreur JS, je ne peux pas m'en sortir à moins de rafraîchir toute la page. Quelqu'un peut-il aider?
211
Réponses:
Utilisez l'onglet sources, vous pouvez y définir des points d'arrêt en JavaScript. Dans l'arborescence des répertoires en dessous (avec les flèches haut et bas), vous pouvez sélectionner le fichier que vous souhaitez déboguer. Vous pouvez sortir d'une erreur en appuyant sur Reprendre sur le côté droit du même onglet.
la source
<script> your code </script>
ajoutez un nom comme:<script> your code //# sourceURL=somename.js </script>
Ceci est mieux expliqué dans une réponse ciParlez-vous de code dans les
<script>
balises ou dans les attributs des balises HTML, comme ceci?Quoi qu'il en soit, le
debugger
mot clé comme celui-ci fonctionnera:NB Chrome ne s'arrêtera pas à
debugger
s si les outils de développement ne sont pas ouverts.Vous pouvez également définir des points d'arrêt de propriété dans les fichiers et
<script>
balises JS :la source
Sources
au lieu deScripts
maintenant.Vous pouvez également donner un nom à votre script:
<script> ... (your code here) //# sourceURL=somename.js </script>
bien sûr, remplacez "somename" par un nom;) puis vous le verrez dans le débogueur chrome à "Sources> top> (pas de domaine)> somename.js" comme un script normal et vous pourrez le déboguer comme les autres scripts
la source
Actualisez la page contenant le script pendant que les outils de développement sont ouverts sur l'onglet scripts. Cela ajoutera une entrée (programme) dans la liste des fichiers qui montre le html de la page, y compris le script. De là, vous pouvez ajouter des points d'arrêt.
la source
Une autre astuce simple et intuitive pour déboguer, en particulier le script à l'intérieur du code HTML renvoyé par ajax, consiste à placer temporairement console.log ("test") à l'intérieur du script.
Une fois que vous avez déclenché l'événement, ouvrez l'onglet console dans les outils de développement. vous verrez le lien du fichier source affiché à droite de l'instruction d'impression de débogage "test". cliquez simplement sur la source (quelque chose comme VM4xxx) et vous pouvez maintenant définir le point d'arrêt.
PS: en plus, vous pouvez envisager de mettre une instruction "debugger" si vous utilisez du chrome, comme ce qui est suggéré par @Matt Ball
la source
Ma situation et ce que j'ai fait pour y remédier:
J'ai un fichier javascript inclus sur une page HTML comme suit:
Nom de la page: test.html
Maintenant, en entrant le débogueur Javascript dans Chrome, je clique sur l'onglet Scripts et je déroule la liste comme indiqué ci-dessus. Je peux clairement voir scripts / common.js mais je ne pouvais PAS voir la page html actuelle test.html dans la liste déroulante, donc je ne pouvais pas déboguer le javascript intégré:
C'était déroutant. Cependant, lorsque j'ai supprimé le type = "text / javascript" obsolète du script intégré:
..et actualisé / rechargé la page, le tour est joué, elle est apparue dans la liste déroulante, et tout allait bien à nouveau.
J'espère que cela sera utile à tous ceux qui ont des problèmes de débogage du javascript intégré sur une page html.
la source
type
est un attribut obligatoire. En HTML5, c'est facultatif.<div>
m'a empêché de voir le code dans le débogueurAjouter
debugger;
en plus à mon script a fonctionné pour moi.la source
J'avais aussi le même problème, comment déboguer JavaScript qui se trouve à l'intérieur des
<script>
balises. Mais ensuite je l'ai trouvé sous l'onglet Sources, appelé "(index)", entre parenthèses. Cliquez sur le numéro de ligne pour définir les points d'arrêt.Voici Chrome 71.
la source
Si vous ne voyez pas l'onglet "Scripts", assurez-vous que vous lancez Chrome avec les bons arguments. J'ai rencontré ce problème lorsque j'ai lancé Chrome pour déboguer JavaScript côté serveur avec l'argument
--remote-shell-port=9222
. Je n'ai aucun problème si je lance Chrome sans argument.la source
Je suis tombé sur ce problème, mais ma fonction en ligne était avec une vue angularJS. Par conséquent, sur la charge, je n'ai pas pu accéder au script en ligne pour ajouter le débogage, car seul le fichier index.html était disponible dans l'onglet sources du débogueur.
Cela signifiait que lorsque j'ouvrais la vue particulière avec ma ligne (je n'avais pas le choix), elle n'était pas accessible.
La seule façon dont j'ai pu l'atteindre était de mettre une fonction erronée ou d'appeler à l'intérieur de la fonction JS en ligne.
Ma solution comprenait:
Cela signifie que lorsque j'ai cliqué sur mon bouton, on m'a ensuite invité dans la console chrome.
L'important ici en était la source:
VM5658:6
cliquer dessus m'a permis de traverser l'inline et de maintenir le point d'arrêt là pour plus tard.Moyen extrêmement compliqué de l'atteindre. Mais cela a fonctionné et pourrait s'avérer utile lorsque vous traitez avec des applications d'une seule page qui chargent dynamiquement vos vues.
Le
VM[n]
n'a pas de valeur significative et len
on équivaut à l'ID de script. Ces informations peuvent être trouvées ici: Chrome "[VM]"la source
En utilisant Visual Studio (2012), j'ai eu le même problème et le passage à IIS Express a résolu le problème!
L' attribut de
script
la balisetype
n'en a pas tenu compte.Pour une raison quelconque, Visual Studio Development Server ne fournit pas tout ce dont Chrome a besoin pour activer les points d'arrêt.
la source
Je sais que le Q ne concerne pas
Firefox
mais je ne voulais pas ajouter une copie de cette question pour y répondre moi-même.Pour Firefox, vous devez ajouter
debugger;
pour pouvoir faire ce que @ matt-ball a suggéré pour lescript
balise.Donc, sur votre code, vous ajoutez
debugger
au-dessus de la ligne que vous souhaitez déboguer, puis vous pouvez ajouter des points d'arrêt. Si vous venez de définir les points d'arrêt sur le navigateur, cela ne s'arrêtera pas.la source
Il s'agit d'une extension de la réponse de Rian Schmits ci-dessus. Dans mon cas, j'avais du code HTML intégré dans mon code JavaScript et je ne pouvais rien voir d'autre que le code HTML. Peut-être que le débogage de Chrome a changé au fil des ans, mais un clic droit sur l'onglet Sources / Sources m'a présenté Ajouter un dossier à l'espace de travail . J'ai pu ajouter tout mon projet, ce qui m'a donné accès à tous mes JavaScripts. Vous pouvez trouver plus de détails dans ce lien . J'espère que cela aide quelqu'un.
la source