【问题标题】:How can I tell if a JS function is being called somewhere?如何判断某个地方是否正在调用 JS 函数?
【发布时间】:2015-09-16 19:10:29
【问题描述】:

我采用了一个 Drupal 站点,该站点在 Javascript 方面做了很多工作。有许多单独的文件,包括库和自定义代码。

我正在尝试让 ScrollDepth 分析插件工作,我看到 jquery.scrolldepth.min.js 文件正在加载,但我实际上无法判断该函数是否在某处被调用。这使得很难诊断它为什么不起作用。

有没有办法使用开发者工具或其他方式来判断jQuery.scrollDepth() 是否真的被调用了?

【问题讨论】:

  • 只是在里面放一个断点?还是修改文件并在里面放一条日志语句?
  • 正如@Bergi 建议的那样,您可以在 js 函数中放置一个断点,在开发人员工具中,您可以查看 call stack 以查看它是从哪里调用的。
  • grep for .scrollDepth 别处?

标签: javascript jquery developer-tools


【解决方案1】:

根据您使用的编辑器,您可以在任何目录的文件中进行全局搜索。例如,在 Sublime Text 中,您可以执行 CMD + SHIFT + F 并输入 jQuery.scrollDepth() 的搜索查询。

在 Chrome 中,您可以设置断点来单步执行脚本,但如果您没有遇到错误,您将在源代码中跌跌撞撞,直到找到一些东西。与此相比,我认为全局搜索方法在您的情况下可能更有效。

您还可以将这两种方法结合起来......在源代码中查找它被调用的位置,然后在 Chrome 源代码中找到相关行并设置断点。或者,更好的是,如果您的脚本都是串联的,只需在开发人员工具中打开 Sources 选项卡并点击 CMD + F 即可搜索该行。

【讨论】:

  • 同时寻找$.scrollDepth。并希望“jQuery”标识符在任何地方都被最小化。最好单独搜索.scrollDepth,它仍然会找到所有内容
  • 谢谢!我不知道 Sublime Text 中的全局搜索。效果很好。
  • @Vecta,很高兴它对你有用。是的,这不是一个明显的功能,但它非常有用!
  • dbl-单击源左侧窗格中的每个文件以“打开”它,然后 [ctrl]+[f] 一次搜索所有文件。
猜你喜欢
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
  • 2015-07-18
  • 2011-04-02
  • 2014-06-22
  • 1970-01-01
相关资源
最近更新 更多