Les outils de développement de Chrome sont géniaux, mais une chose qu'ils ne semblent pas avoir (que j'ai pu trouver) est un moyen de trouver la définition d'une fonction JavaScript. Ce serait très pratique pour moi car je travaille sur un site qui inclut de nombreux fichiers JS externes. Certes, grep résout ce problème, mais dans le navigateur, ce serait beaucoup mieux. Je veux dire, le navigateur doit le savoir, alors pourquoi ne pas l'exposer? Ce à quoi je m'attendais était quelque chose comme:
Tout d'abord, cette fonctionnalité existe-t-elle et je la manque?
Et si ce n'est pas le cas, je suppose que cela proviendrait de WebKit, mais que rien ne pourrait être trouvé pour demandes de fonctionnalités de l'outil de développement ou la Webzit Bugzilla .
Disons que nous cherchons une fonction nommée foo
:
foo\s*=\s*function
(rechercher _foo = function
_ avec un nombre quelconque d'espaces entre ces trois jetons),Une autre variante de la définition de fonction est function\s*foo\s*\(
pour _function foo(
_ avec un nombre quelconque d'espaces entre ces trois jetons.
This atterri à Chrome le 2012-08-26 Je ne suis pas sûr de la version exacte, je l'ai remarqué dans Chrome 24.
Une capture d'écran vaut un million de mots:
J'inspecte un objet avec des méthodes dans la console. En cliquant sur "Afficher la définition de la fonction", cela me conduit à l'emplacement du code source où la fonction est définie. Ou je peux simplement survoler la function () {
Word pour voir le corps de la fonction dans une info-bulle. Vous pouvez facilement inspecter la chaîne de prototypes dans son ensemble! CDT définitivement rock !!!
J'espère que vous trouverez tous cela utile!
Vous pouvez imprimer la fonction en évaluant son nom dans la console, comme suit
> unknownFunc
function unknownFunc(unknown) {
alert('unknown seems to be ' + unknown);
}
cela ne fonctionnera pas pour les fonctions intégrées, elles afficheront uniquement [native code]
au lieu du code source.
EDIT: cela implique que la fonction a été définie dans la portée actuelle.
Mise à jour 2016: dans Chrome version 51.0.2704.103
Il existe un raccourci Go to member
(répertorié dans settings > shortcut > Text Editor
). Ouvrez le fichier contenant votre fonction (dans le panneau sources
de DevTools) et appuyez sur:
ctrl + shift + O
ou sous OS X:
⌘ + shift + O
Cela permet de répertorier et d’atteindre les membres du fichier en cours.
Un autre moyen de naviguer jusqu'à l'emplacement d'une définition de fonction consiste à ouvrir le débogueur à un endroit où vous pouvez accéder à la fonction et entrer le nom complet de la fonction dans la console. Ceci imprimera la définition de la fonction dans la console et donnera un lien qui ouvrira l'emplacement du script où la fonction est définie.
Différents navigateurs le font différemment.
Commencez par ouvrir la fenêtre de la console en cliquant avec le bouton droit de la souris sur la page et en sélectionnant "Inspecter élément" ou en appuyant sur F12.
Dans la console, tapez ...
Firefox
functionName.toSource()
Chrome
functionName
Je trouve que le moyen le plus rapide de localiser une fonction globale est simplement:
dans la console Chrome:
debug(MyFunction)
MyFunction()
Dans Google Chrome, outil d'inspection d'éléments, vous pouvez afficher n'importe quelle définition de fonction Javascript.