我正在开发一个新客户的网站,该网站从CDN加载Javascript,因此Javascript未嵌入或与网页源内联。 我想在每次getCurrentPosition()
执行时暂停,以确定它包含在哪个外部JS文件中。
我意识到我可以使用其他工具对JS文件的内容进行字符串搜索,但我宁愿继续使用Chrome的调试工具。
我是否应该尝试创建一个监视表达式,还是有另一种方法可以确定触发某个JS函数的时间和位置?
答案 0 :(得分:39)
您可以使用Chrome DevTools搜索所有文件。找到你的功能并进行调试:
答案 1 :(得分:9)
在打开的框中搜索所有文件(JS,CSS,...)。
在框中,您有5个选项:
输入' @ symbol'转到特定符号(' @ TestSymbol'转到TestSymbol符号)。
在此选项中,如果您编写@JSFunctionName或@CSSClassName,则表示光标 将导航到JSFunctionName或CSSClassName。
输入'!代码段'转到特定代码段('!snippetTest'转到snippetTest代码段)。
使用选项2-5选择一个文件。
答案 2 :(得分:0)
一种方法是用包装函数替换Geolocation.getCurrentPosition
方法,以便在其中设置断点,然后检查堆栈以查看谁在调用它。
答案 3 :(得分:0)
如果你知道代码调用方法的位置,你可以set breakpoints。这将在运行时暂停javascript执行,并允许您获得堆栈跟踪。
答案 4 :(得分:0)
您可以在网页上找到所需的所有信息:https://developer.chrome.com/devtools/docs/javascript-debugging
简单地把它(从网页上复制)
打开Google Closure hovercard演示页或TodoMVC
等网站
打开Google Closure hovercard演示页面或TodoMVC Angular应用程序等网站
打开DevTools窗口。
- 醇>
如果尚未选择,请选择“来源”。
使用断点进行调试
断点是脚本中故意停止或暂停的位置。在DevTools中使用断点来调试JavaScript代码,DOM更新和网络调用。
添加和删除断点 在“源”面板中,打开一个JavaScript文件以进行调试。在下面的示例中,我们正在调试来自AngularJS版本的TodoMVC的todoCtrl.js文件。
单击line gutter为该行代码设置断点。蓝色标记将指示是否已设置断点:
通过上面这个简单的例子你可以实际上"停止"函数getCurrentPosition()
并调试它。