6

我目前正在使用一个大型预先存在的代码库,该代码库可能有一个或多个setInterval 计时器一直在运行,来自各种插件或库。这基本上使得无法尝试使用Break on Next来调试单击元素时发生的情况。

问题:一旦我单击 Break on Next,浏览器调试器(已尝试使用 Firebug 和 Chrome)在我有机会与页面交互以真正调试我想要的事件之前停止在 setInterval 函数之一中。

具体问题:我的复选框在未选中时保持未选中状态,无论我单击它们多少次。我也删除了 ID 和类名,但无济于事,似乎没有附加事件处理程序。

注意:不使用 jQuery

4

1 回答 1

1

这可能会阻止其他事情,但是如果您尝试像这样对这些调用进行猴子修补怎么办:

window.setInterval = function() { console.log("setInterval", arguments); };
window.setTimeout = function() { console.log("setTimeout", arguments); };

如果您发现实际上需要一些超时/间隔来重现您的问题,您可以尝试让它们通过。比代码可能是这样的:

window.oldSetTimeout = window.setTimeout;
window.setTimeout = function() { 
    if (arguments[0] == "code you want to allow") {
         oldSetTimeout.apply(null, arguments);
    } else {
         console.log("setTimeout", arguments); 
    }
};

注意:我不会对猴子补丁 setTimeout 不能跨浏览器工作感到惊讶,但它适用于 FF 18.0

于 2013-01-28T22:05:38.173 回答