我目前正在处理一个大的预先存在的代码库,它可能有一个或多个setInterval 定时器,它们从各种插件或库中一直运行.这基本上使得无法尝试使用Break on Next来调试单击元素时发生的情况.
问题:一旦我单击Break on Next,浏览器调试器(尝试使用Firebug和Chrome)会在其中一个setInterval函数中停止,然后我才有机会与页面进行交互以真正调试我想要的事件.
具体问题:无论多少次点击它们,我都会在未经检查时保持未选中的复选框.我删除了ID和类名也没有用,似乎没有附加事件处理程序.
注意:不使用jQuery
这可能会阻止其他事情,但是如果您尝试像这样猴子修补这些调用会怎么样:
window.setInterval = function() { console.log("setInterval", arguments); };
window.setTimeout = function() { console.log("setTimeout", arguments); };
Run Code Online (Sandbox Code Playgroud)
如果您发现确实需要一些超时/间隔来重现您的问题,您可以尝试让它们通过。代码可能是这样的:
window.oldSetTimeout = window.setTimeout;
window.setTimeout = function() {
if (arguments[0] == "code you want to allow") {
oldSetTimeout.apply(null, arguments);
} else {
console.log("setTimeout", arguments);
}
};
Run Code Online (Sandbox Code Playgroud)
注意:我不会惊讶猴子补丁 setTimeout 不能跨浏览器工作,但它可以在 FF 18.0 上工作
| 归档时间: |
|
| 查看次数: |
654 次 |
| 最近记录: |