我试图找出单击按钮时调用哪个Javascript方法。我有一些黑盒子的第三方javascript文件。我使用的是最新版本的Chrome和Canary。
我在devtools中启用了鼠标单击事件侦听器断点。当我单击一个按钮时,在一个黑盒子的js文件中命中一个调试器断点。我正在使用第三方按钮,其JS点击事件处理程序在我之前首先执行。我已经黑盒子他们的代码文件希望我的代码获得断点。 “此脚本在调试器中为黑盒子”黄色消息显示其代码文件。
为什么在脚本文件被黑盒子化时会破坏断点?
答案 0 :(得分:0)
我创建了一个测试,我在此页面上添加了click
事件侦听器断点,并在jquery-min.js
暂停了。我将该脚本黑盒子再次尝试。它不再在jQuery中破解了。
我重新阅读了你的帖子,你提到'调试器断点被击中'。我现在认为这意味着一个显式断点,如源代码中的debugger;
语句或Dev Tools中的一组(通过单击行号),并且事件监听器断点是无关紧要的。
如果库中有一个debugger;
语句是黑盒子的,那么断点仍会被命中。您可以通过右键单击语句所在的行号并选择“从不在此处暂停”来禁用断点。
就目前而言,如果你通过Dev Tools在一个黑盒子库中放置一个断点,它仍会在该脚本中断开。它显示了更明确的意图打破代码,而不是第三方留下的东西。您必须禁用或删除它们。
关于黑盒子是否应该忽略该库中设置的断点似乎存在争议,因为黑盒子可以被认为更多的是不进入库代码/在调用堆栈中看到它。请参阅讨论here。有趣的是,文档还包括以下内容:
调试器不会在库代码中设置的任何断点上暂停。
https://developer.chrome.com/devtools/docs/blackboxing
事实并非如此。
此处的行为和文档存在不一致之处。我会尝试对此进行更新。