Je travaille sur le site Web d'un nouveau client qui charge le code Javascript à partir d'un CDN afin que celui-ci ne soit pas intégré ou en ligne avec la source de la page Web. Je voudrais faire une pause à chaque fois que getCurrentPosition()
est exécuté afin de déterminer le fichier JS externe dans lequel il est contenu.
Je réalise que je pourrais utiliser d'autres outils pour effectuer une recherche de chaîne dans le contenu des fichiers JS, mais je préférerais m'en tenir aux outils de débogage de Chrome.
Devrais-je essayer de créer une expression de montre ou existe-t-il un autre moyen de déterminer quand et où une certaine fonction JS est activée?
Vous pouvez rechercher dans tous les fichiers à l'aide de Chrome DevTools. Trouvez votre fonction et déboguez-la:
ctrl + shift + f
(Win) ou cmd + option + f
(Mac).Dans la zone ouverte, recherchez tous les fichiers (JS, CSS, ...).
Dans la boîte, vous avez 5 options:
Tapez '@symbol' pour aller au symbole spécifique ('@ TestSymbol' au symbole TestSymbol).
Dans cette option, si vous écrivez @JSFunctionName ou @CSSClassName, le curseur Naviguera jusqu'au nom JSFunctionName ou CSSClassName.
Tapez '! Snippet' pour aller à l'extrait spécifique ('! SnippetTest' aller à l'extrait snippetTest).
Pour utiliser les options 2 à 5, sélectionnez un fichier.
Vous trouverez toutes les informations dont vous avez besoin sur la page Web: https://developer.chrome.com/devtools/docs/javascript-debugging
En le mettant simplement (copié de la page Web)
Ouvrez un site tel que la page de démonstration Google Closure hovercard ou TodoMVC.
Ouvrez un site tel que la page de démonstration Google Closure hovercard ou l'application TodoMVC Angular.
Ouvrez la fenêtre de DevTools.
S'il n'est pas déjà sélectionné, sélectionnez Sources.
Débogage avec points d'arrêt
Un point d'arrêt est un arrêt ou une pause intentionnel dans un script. Utilisez les points d'arrêt dans DevTools pour déboguer le code JavaScript, les mises à jour DOM et les appels réseau.
Ajouter et supprimer des points d'arrêt Dans le panneau Sources, ouvrez un fichier JavaScript pour le débogage. Dans l'exemple ci-dessous, nous déboguons le fichier todoCtrl.js à partir de la version AngularJS de TodoMVC.
Cliquez sur la ligne Gutter pour définir un point d'arrêt pour cette ligne de code. Une balise bleue indique si un point d'arrêt a été défini:
Avec l'exemple simple ci-dessus, vous pouvez réellement "arrêter" la fonction getCurrentPosition()
et la déboguer.
Une solution consisterait à remplacer la méthode Geolocation.getCurrentPosition
par une fonction wrapper afin de pouvoir définir un point d'arrêt à l'intérieur de celle-ci, puis d'examiner la pile pour voir qui l'appelle.
Si vous savez où la méthode est appelée dans le code, vous pouvez définir des points d'arrêt . Cela mettra en pause l'exécution de javascript pendant l'exécution et vous permettra d'obtenir une trace de la pile.