如何找到调用某个函数的地方?
How to find the place where a certain function is called?
我正在写一个网页,我需要在其中做一些小改动。问题是,我需要找到调用某个函数的位置(有很多 JavaScript 文件,所以我无法逐行查看它们)。你知道吗,我怎么才能找到它?
我知道如何在Firebug或类似的浏览器控制台中进行逐步调试,但我仍然不知道如何识别调用函数的位置。
我更喜欢在 Firefox 或 Chrome 中使用控制台。
如果您有权访问脚本,则可以在每个要观看的函数的末尾添加:
console.trace()
这将在 Chrome 的控制台输出调用了哪些函数及其在文件中的位置(行号)
Chrome 的调试提示:
您可能有多种方法可以找出更改的来源。但我发现在跟踪 DOM 中的更改时,这可以节省时间。 (这通常会引导我找到我正在寻找的函数)
在 subtree modification
或 attribute modifications
处中断。为此,请右键单击 DOM 树中的一个元素。特别是您认为正在应用更改的那个。从那里你会得到一个上下文菜单,它会给你这些选项。选择其中一个并设置 DOM 断点。
如果这会触发调试器,您可以使用 F11 和 shift + 继续逐步执行代码F11 跳过函数(如果你在像 jQuery 这样的库中结束时很有用)。执行此操作时,请注意 call stack
。这将告诉您代码的来源..
更深入的信息:
https://developer.chrome.com/devtools/docs/javascript-debugging
要了解函数的调用者,只需在函数的第一行设置断点即可。一旦遇到断点,您就可以在堆栈跟踪中看到它被调用的地方。
Firefox 开发者工具
Firebug
Chrome 开发工具
我正在写一个网页,我需要在其中做一些小改动。问题是,我需要找到调用某个函数的位置(有很多 JavaScript 文件,所以我无法逐行查看它们)。你知道吗,我怎么才能找到它?
我知道如何在Firebug或类似的浏览器控制台中进行逐步调试,但我仍然不知道如何识别调用函数的位置。
我更喜欢在 Firefox 或 Chrome 中使用控制台。
如果您有权访问脚本,则可以在每个要观看的函数的末尾添加:
console.trace()
这将在 Chrome 的控制台输出调用了哪些函数及其在文件中的位置(行号)
Chrome 的调试提示:
您可能有多种方法可以找出更改的来源。但我发现在跟踪 DOM 中的更改时,这可以节省时间。 (这通常会引导我找到我正在寻找的函数)
在 subtree modification
或 attribute modifications
处中断。为此,请右键单击 DOM 树中的一个元素。特别是您认为正在应用更改的那个。从那里你会得到一个上下文菜单,它会给你这些选项。选择其中一个并设置 DOM 断点。
如果这会触发调试器,您可以使用 F11 和 shift + 继续逐步执行代码F11 跳过函数(如果你在像 jQuery 这样的库中结束时很有用)。执行此操作时,请注意 call stack
。这将告诉您代码的来源..
更深入的信息:
https://developer.chrome.com/devtools/docs/javascript-debugging
要了解函数的调用者,只需在函数的第一行设置断点即可。一旦遇到断点,您就可以在堆栈跟踪中看到它被调用的地方。
Firefox 开发者工具
Firebug
Chrome 开发工具