I'm working on a new client's website that loads Javascript from a CDN so the Javascript is not embedded or inline with the webpage source. I would like to pause everytime getCurrentPosition()
is executed in order to determine which external JS file it is contained in.
I realize I could use other tools to do a string search through the contents of the JS files but I would rather keep to Chrome's debugging tools.
Should I be trying to create a watch expression or is there another way to pin down when and where a certain JS function is fired?
You can search in all files using Chrome DevTools. Find your function and debug it:
- Open DevTools (F12)
- Go to sources tab
- Open Search All Files by pressing
ctrl + shift + f
(Win) orcmd + option + f
(Mac) - Search getCurrentPosition
- Put a breakpoint (By clicking the line number at the left of the line)
- Open Google Dev tools(F12)
- Press Ctrl + p
In the opened box search for all files(JS, CSS, ...).
In the box you have 5 options:
- Type 'filename' and select it.
- Type ':linenumber' to go to specific line number(':10' go to line 10).
Type '@symbol' to go to specific symbol('@TestSymbol' go to TestSymbol symbol).
In this option, if you write @JSFunctionName or @CSSClassName then the cursor will navigate to the JSFunctionName or the CSSClassName.
Type '!snippet' to go to specific snippet('!snippetTest' go to snippetTest snippet).
- Type '>googleCommand' to go to specific command('>Clear console' clear the console).
For using options 2-5 select a file.
One way would be to replace the Geolocation.getCurrentPosition
method with a wrapper function so that you can set a breakpoint inside it, and then examine the stack to see who is calling it.
If you know where in the code the method is called you can set breakpoints. This will pause the javascript execution during runtime and allow you get a stack trace.
You can find all the information that you need at the webpage: https://developer.chrome.com/devtools/docs/javascript-debugging
By simply putting it (copied from the webpage)
Open a site such as the Google Closure hovercard demo page or the TodoMVC
Open a site such as the Google Closure hovercard demo page or the TodoMVC Angular app
Open the DevTools window.
If it is not already selected, select Sources.
Debugging with breakpoints
A breakpoint is an intentional stopping or pausing place in a script. Use breakpoints in DevTools to debug JavaScript code, DOM updates, and network calls.
Add and remove breakpoints In the Sources panel, open a JavaScript file for debugging. In the example below, we are debugging the todoCtrl.js file from the AngularJS version of TodoMVC.
Click the line gutter to set a breakpoint for that line of code. A blue tag will indicate if a breakpoint has been set:
With the above simple example you can actually "stop" the function getCurrentPosition()
and debug it.
来源:https://stackoverflow.com/questions/37685351/chrome-devtools-search-all-javascript-files-in-website