gpt4 book ai didi

javascript - 使用 "Break on Next"调试时如何排除 setTimeout 或 setInterval 类型的语句?

转载 作者:数据小太阳 更新时间:2023-10-29 05:36:29 25 4
gpt4 key购买 nike

我目前正在处理一个大型的预先存在的代码库,该代码库可能有一个或多个 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); };

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

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

关于javascript - 使用 "Break on Next"调试时如何排除 setTimeout 或 setInterval 类型的语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14570439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com