FMa*_*008 137 javascript debugging google-chrome inspector dom-events
假设我的页面上有一个链接:
<a href="#" id="foo">Click Here</a>
Run Code Online (Sandbox Code Playgroud)
我什么都不知道,但当我点击链接时,会显示一个警告("栏").所以我知道在某个地方,一些代码被绑定到#foo.
如何找到将警报("栏")绑定到click事件的代码?我正在寻找Chrome的解决方案.
Ps.:这个例子是虚构的,所以我不是在寻找像这样的解决方案:"使用XXXXXX并在整个项目中搜索"alert(\"bar \")".我想要一个真正的调试/跟踪解决方案.
Ion*_*tan 130
使用Chrome 15.0.865.0 dev."元素"面板上有"事件监听器"部分:

以及"脚本"面板上的"事件监听器断点".使用鼠标 - >单击断点然后"进入下一个函数调用",同时密切关注调用堆栈以查看用户区函数处理事件的内容.理想情况下,你会用unminified一个替代的jQuery缩小的版本,这样你就不必介入所有的时间,并使用步骤在可能的情况下.

Mat*_*y J 44
您还可以使用Chrome的检查器以其他方式查找附加事件,如下所示:
这将带您到处理程序的定义位置,如下图所示,并由Paul Irish在此解释:https://groups.google.com/forum/#!topic/google- chrome-developer-tools/ NTcIS15uigA

小智 15
尝试按照以下步骤尝试jQuery Audit扩展(https://chrome.google.com/webstore/detail/jquery-audit/dhhnpbajdcgdmbbcoakfhmfgmemlncjg):
对于版本Chrome版本71.0.3578.98(最新的2019年):
选择要检查的元素
选择"事件侦听器"选项卡
确保检查Framework侦听器以显示真正的javascript文件而不是jquery函数.
编辑:代替我自己的答案,这个非常优秀:如何使用Firebug(或类似工具)调试JavaScript/jQuery事件绑定
Google Chromes开发人员工具在脚本部分内置了搜索功能
如果您不熟悉此工具:(以防万一)
快速搜索#ID最终会带您进入绑定功能.
例如:搜索#foo会带你去
$('#foo').click(function(){ alert('bar'); })
Run Code Online (Sandbox Code Playgroud)

2018 年更新 - 可能对未来的读者有所帮助:
我不确定这最初是何时在 Chrome 中引入的。但是现在可以在 Chrome 中完成的另一种(简单)方法是通过控制台命令。
例如:(在铬控制台类型)
getEventListeners($0)
Run Code Online (Sandbox Code Playgroud)
而$0是 DOM 中的选定元素。
https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference#0_-_4
findEventHandlers 是一个 jquery 插件,原始代码在这里:https ://raw.githubusercontent.com/ruidfigueiredo/findHandlersJS/master/findEventHandlers.js
脚步
将原始代码直接粘贴到 chrome 的控制台中(注意:必须已经加载了 jquery)
使用以下函数调用: findEventHandlers(eventType, selector);
找到对应的选择器指定元素的 eventType 处理程序。
示例:
findEventHandlers("click", "#clickThis");
Run Code Online (Sandbox Code Playgroud)
然后如果有,可用的事件处理程序将显示如下,您需要展开找到处理程序,右键单击该函数并选择 show function definition
请参阅:https : //blinkingcaret.wordpress.com/2014/01/17/quickly-finding-and-debugging-jquery-event-handlers/
| 归档时间: |
|
| 查看次数: |
97675 次 |
| 最近记录: |