当前位置:  开发笔记 > 编程语言 > 正文

使用Firebug调试JavaScript事件

如何解决《使用Firebug调试JavaScript事件》经验,为你挑选了1个好方法。

我需要为某个事件设置一个断点,但我不知道,它在哪里定义,因为我有一大堆最小化的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的来源.



1> Crescent Fre..:

那么它可能比它的价值太麻烦,但看起来你有三件事要做:

    减少来源.我喜欢这个快速而肮脏的在线工具.只需粘贴代码并单击按钮即可.从来没有让我失望,即使是最时髦的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的来源.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有