如何找到调用某个函数的地方?

How to find the place where a certain function is called?

我正在写一个网页,我需要在其中做一些小改动。问题是,我需要找到调用某个函数的位置(有很多 JavaScript 文件,所以我无法逐行查看它们)。你知道吗,我怎么才能找到它?

我知道如何在Firebug或类似的浏览器控制台中进行逐步调试,但我仍然不知道如何识别调用函数的位置。

我更喜欢在 Firefox 或 Chrome 中使用控制台。

如果您有权访问脚本,则可以在每个要观看的函数的末尾添加:

console.trace()

这将在 Chrome 的控制台输出调用了哪些函数及其在文件中的位置(行号)

Chrome 的调试提示:

您可能有多种方法可以找出更改的来源。但我发现在跟踪 DOM 中的更改时,这可以节省时间。 (这通常会引导我找到我正在寻找的函数

subtree modificationattribute modifications 处中断。为此,请右键单击 DOM 树中的一个元素。特别是您认为正在应用更改的那个。从那里你会得到一个上下文菜单,它会给你这些选项。选择其中一个并设置 DOM 断点。

如果这会触发调试器,您可以使用 F11shift + 继续逐步执行代码F11 跳过函数(如果你在像 jQuery 这样的库中结束时很有用)。执行此操作时,请注意 call stack。这将告诉您代码的来源..

更深入的信息:

https://developer.chrome.com/devtools/docs/javascript-debugging

要了解函数的调用者,只需在函数的第一行设置断点即可。一旦遇到断点,您就可以在堆栈跟踪中看到它被调用的地方。

Firefox 开发者工具

Firebug

Chrome 开发工具