Trouver JavaScript définition de la fonction dans Chrome
Chrome Developer Tools rock, mais une chose qu'ils ne semblent pas avoir (que j'ai pu trouver) est un moyen de trouver une fonction JavaScript définition. Ce serait super pratique pour moi parce que je travaille sur un site qui regroupe beaucoup de JS externe des fichiers. Assurez-vous grep permet de résoudre ce mais dans le navigateur serait beaucoup mieux. Je veux dire, le navigateur doit savoir cela, alors pourquoi ne pas l'exposer? De ce que j'attendais était quelque chose comme:
- Sélectionnez " Inspecter l'Élément de la page, qui met en évidence la ligne dans l'onglet Éléments
- Cliquez-droit sur la ligne et sélectionnez "Aller à la définition de la fonction'
- Corriger le script est chargé dans l'onglet Scripts et elle saute à la définition de la fonction
Tout d'abord, est ce que cette fonctionnalité existe pas et je suis juste en manque c'?
Et si ça ne marche pas, je suppose que ce serait à partir de WebKit, mais ne pouvait pas trouver quoi que ce soit pour Développeur de l'Outil de demandes de fonctionnalités ou WebKit de Bugzilla.
- Il y a une barre de recherche qui grep le fichier en cours dans l'onglet Scripts et vous pouvez regarder le contenu d'une fonction d'impression par elle. Mais je suis maintenant curieux de si il ya un moyen de faire une recherche plus générale comme vous voulez...
- Avec Google Chrome Developer Tools, lors de la "Sources" Tap -> droite de la fenêtre, vous avez la possibilité de définir l'Événement "points d'arrêt".
- Dans mon cas, j'ai eu une variable à une fonction inconnue. Je n'ai myvar.toString() et de l'imprimer: "la fonction de l'Objet() { [native code] }" qui est tout ce que je besoin de savoir.
Vous devez vous connecter pour publier un commentaire.
Permet de dire que nous sommes à la recherche pour fonction nommée
foo
:cmd + optn + F. Cela ouvre une fenêtre de recherche à travers tous les scripts.
foo\s*=\s*function
(recherchefoo = function
avec un nombre quelconque d'espaces entre ces trois jetons),Une autre variante pour la définition de fonction est
function\s*foo\s*\(
pourfunction foo(
avec un nombre quelconque d'espaces entre ces trois jetons.foo
. Il en existe d'autres. Que faire si notre fonction est, par exemple,bar['foo']
? (Il n'y a pas de bonne réponse à cette question, autant que je sache --- c'est "ne pas écrire alambiqué code")foo\\s*=\\s*function
^(?=.*foo)(?=.*function).*$
Aussi, la réponse ci-dessus est techniquement une réponse parfaite à la question, avec quelques bonus info jeté dans.var foo = () => (...)
, mais qui doit être assez rare. @StevenLu C'est pédant, mais je crois que la fonction n'est pas nom foo dans votre deuxième exemple. Il est affecté à la propriété foo sur la barre.Ce débarqué en Chrome sur 2012-08-26
Pas sûr au sujet de la version exacte, je l'ai remarqué en Chrome 24.
Une capture d'écran vaut un million de mots:
Je suis inspection d'un objet avec des méthodes dans la Console. En cliquant sur "Afficher définition de la fonction" me prend de la place dans le code source où la fonction est définie. Ou je peux il suffit de passer sur le
function () {
mot pour voir le corps de la fonction dans une info-bulle. Vous pouvez facilement inspecter l'ensemble de la chaîne de prototype de ce genre! CDT définitivement rock!!!Espère que vous le trouverez utile!
dir(myFunc)
findDefinition(myFunc)
? Autant que je sache qui n'existe pas encore...({1:somefunction})
, puis à droite, cliquez sur la fonction à l'intérieur de l'objet imprimé.console.dir()
toujours affiche son argument comme sur l'objet avec les propriétés de sorte que vous pouvez droit-cliquez dessus et sélectionnez "Afficher la définition de la fonction"onclick=some_function(weird)
. Le seul résultat de la recherche peu importe ce que j'essaie montre juste la balise HTML, si la fonction est en train de faire... quelque chose... et ce n'est pas un pré-définis en fonction JavaScript.Vous pouvez imprimer la fonction par l'évaluation de la nom de dans la console, comme
cela ne fonctionne pas pour les fonctions intégrées, ils n'affichent
[native code]
au lieu de code source.MODIFIER: cela implique que la fonction a été définie dans le champ d'application actuel.
function unknownFunc(unknown)
ligne maintenant, sans code en ligne.2016 mise à Jour: dans la Version Chrome 51.0.2704.103
Il y a un
Go to member
raccourci (répertoriés danssettings > shortcut > Text Editor
). Ouvrez le fichier contenant votre fonction (dans lesources
panneau de la DevTools) et appuyez sur:ou OS X:
Cela permet de répertorier et de la sensibilisation des membres de l'actuel fichier.
Une autre façon de naviguer jusqu'à l'emplacement de la définition d'une fonction serait de séparer dans le débogueur, vous pouvez accéder à la fonction et entrez les fonctions du nom complet de la console. Cette impression sera la définition de la fonction dans la console et de donner un lien qui s'ouvre cliquez sur l'emplacement du script où la fonction est définie.
Différents navigateurs ce faire différemment.
D'abord ouvrir la fenêtre de la console par un clic droit sur la page et choisir "Inspecter l'Élément", ou en appuyant sur la touche F12.
Dans la console, tapez...
Firefox
Chrome
functionName.toSource()
travaille également sur les dernières versions de chrome.stop
.J'ai trouver le moyen le plus rapide pour localiser une fonction globale est tout simplement:
en Chrome console:
undebug(MyFunction)
pour supprimer le point d'arrêt à nouveau (après avoir trouvé la méthode de la mise en œuvre)Dans Google chrome, Inspecter l'élément outil, vous pouvez afficher le code Javascript définition de la fonction.
fonction.
"Évaluer le texte sélectionné dans la console."