我需要为某个事件设置一个断点,但我不知道,它在哪里定义,因为我有一大堆最小化的JavaScript代码,所以我无法手动找到它.
是否有可能以某种方式设置断点,例如具有ID的元素的click事件registerButton
,或者找到哪个函数绑定到该事件?
我找到了Firefox附加的Javascript Deobfuscator,它显示了当前执行的JavaScript,这很好,但我需要调试的代码是使用jQuery,所以即使在最简单的事件上也有大量的函数调用,所以我不能使用它无论是.
是否有专门为jQuery制作的调试器?
有没有人知道一些工具可以将缩小的JavaScript重新转换为格式化的代码,例如function(){alert("aaa");v=3;}
转回
function() { alert("aaa"); v = 3; }
Crescent Fre.. 16
那么它可能比它的价值太麻烦,但看起来你有三件事要做:
减少来源.我喜欢这个快速而肮脏的在线工具.只需粘贴代码并单击按钮即可.从来没有让我失望,即使是最时髦的JavaScript.
所有 jQuery事件绑定器都被路由到"jQuery.event.add"
(这是在未构建的源代码中的样子),因此您需要找到该方法并在那里设置断点.
如果你已达到这个目的,你需要做的就是检查断点处的callstack,看看谁叫什么.请注意,由于您位于库中的内部位置,因此需要检查一些跳转(因为代码调用"jQuery.event.add"
很可能只是其他jQuery函数).
注意3)需要Firebug用于FF3.如果您像我一样并且更喜欢使用Firebug for FF2进行调试,则可以使用古老的arguments.callee.caller.toString()
方法检查callstack,".caller
根据需要插入尽可能多的s.
编辑:另请参阅"如何使用FireBug(或类似工具)调试Javascript/jQuery事件绑定".
你可以逃脱:
// inspect var clickEvents = jQuery.data($('#foo').get(0), "events").click; jQuery.each(clickEvents, function(key, value) { alert(value) // alerts function body })
上述技巧将让你看到你的事件处理代码,你可以刚开始狩猎下来在你的来源,而不是试图设置断点在jQuery的来源.
那么它可能比它的价值太麻烦,但看起来你有三件事要做:
减少来源.我喜欢这个快速而肮脏的在线工具.只需粘贴代码并单击按钮即可.从来没有让我失望,即使是最时髦的JavaScript.
所有 jQuery事件绑定器都被路由到"jQuery.event.add"
(这是在未构建的源代码中的样子),因此您需要找到该方法并在那里设置断点.
如果你已达到这个目的,你需要做的就是检查断点处的callstack,看看谁叫什么.请注意,由于您位于库中的内部位置,因此需要检查一些跳转(因为代码调用"jQuery.event.add"
很可能只是其他jQuery函数).
注意3)需要Firebug用于FF3.如果您像我一样并且更喜欢使用Firebug for FF2进行调试,则可以使用古老的arguments.callee.caller.toString()
方法检查callstack,".caller
根据需要插入尽可能多的s.
编辑:另请参阅"如何使用FireBug(或类似工具)调试Javascript/jQuery事件绑定".
你可以逃脱:
// inspect var clickEvents = jQuery.data($('#foo').get(0), "events").click; jQuery.each(clickEvents, function(key, value) { alert(value) // alerts function body })
上述技巧将让你看到你的事件处理代码,你可以刚开始狩猎下来在你的来源,而不是试图设置断点在jQuery的来源.