问题 如何查看实时调用的所有JavaScript函数?


我想弄清楚网站如何使用AJAX重新加载它的内容。因此,我想看看实时调用什么JS函数,因为我无法弄清楚哪个函数负责动态重新加载页面。如何在FF,Chrome,Opera或IE中实时查看所有已执行的函数JS?


2466
2017-08-13 09:08


起源

你用过萤火虫吗?你知道它的断点特征吗? - Zasz
我有萤火虫。我不能提出突破点,因为我不知道它是什么功能。你有问题吗?请这样做。我需要一些东西来看看调用哪些函数不将断点放入函数中。 - Tomasz Smykowski
如果该页面有jQuery,请参阅 这个答案 要查看哪些函数连接到elemnet导致ajax调用,那么,您可以使用断点和步进函数来跟踪它。 - Zasz


答案:


也许使用firebug控制台选项卡中的“配置文件”按钮可以指示所触发的功能。此外,您可以告诉firebug的控制台显示xmlhttp请求(在firebug屏幕的顶部展开'console'。之后,如果ajax请求触发,它应该在控制台中可见。在这样的请求的'post'选项卡中您可以推断触发请求的功能,查看参数。


11
2017-08-13 09:45



我试图在IE中调试一个问题某种无限循环,但如果我必须使用Firefox来获取被调用的方法列表,那么我至少知道在哪里看起来很酷。但是当我使用配置文件按钮然后加载页面时,配置文件会在新页面加载时重置。那么如何捕获页面首次加载时运行的内容? - stephenbayer


我认为您想要的是Chrome中的一项功能:

找到正在重新加载的元素并右键单击, 从上下文菜单中选择检查, 然后右键单击元素的html(在底部的firebugish窗格中), 在上下文菜单中有以下选项:

  • 打破子树修改
  • 打破属性修改
  • 打破节点删除

在你的情况下,也许在body标签上设置“break on subtree modification”会这样做吗?

有关chrome中令人敬畏的新开发功能的文章: http://www.elijahmanor.com/2011/08/7-chrome-tips-developers-designers-may.html


3
2017-08-13 11:35





在FF中安装firebug。访问此链接: http://getfirebug.com/


1
2017-08-13 09:14



我已经安装了Firebug数月。我在那里找不到它。也许你能找到它? - Tomasz Smykowski
@tomaszs你正在寻找探查器。运行它,它跟踪所有功能 - Raynos


我会做一个大的搜索,并使用匹配函数名称的正则表达式替换所有文件(类似于“function (.*)\((.*)\){“)并使用它来插入一个 console.log(functionName) 在功能开始。

所以你搜索 function (.*)\(.*\){ 并替换它 function \1 (\2){ console.log("\1"); (注意:正则表达式很可能是错误的,因为我没有检查它们 - 你需要进行一些测试才能使它正确)。

它似乎有点疯狂,但它应该工作。我已经使用该方法来调试Director Lingo项目。

显然,请确保在更换之前备份整个项目。


0
2017-08-13 09:35



如果您有权访问项目文件,那就太棒了。如果你不这样做怎么办? - Tomasz Smykowski
我想知道为什么有人想要调试一个站点,如果他们无法访问代码? - this.lau_
对不起,我写错了:我没有轻松访问网站文件(你知道html,css,js) - Tomasz Smykowski
如果他们正在黑客攻击它 - light24bulbs


我经常使用Firefox附加的JavaScript Deobfuscator

https://addons.mozilla.org/en-us/firefox/addon/javascript-deobfuscator/


0
2018-04-16 13:51





如果您有权访问源代码,请给出答案。使用此正则表达式,您可以执行所有函数调用的console.log:

搜索:

function (.*){

用。。。来代替:

function \1 { console.log\(("\1")\);

0
2018-05-09 07:06