页面刷新前的断点?

Tho*_*son 16 javascript debugging google-chrome breakpoints

我正在调试一些第三方缩小的Javascript,某个地方正在触发浏览器页面刷新.但是,我无法弄清楚代码的哪一部分导致刷新.

有没有办法在Chrome中设置一个断点,它会在页面刷新之前被点击,这样我就可以检查调用堆栈以查看导致它的原因了什么?

Ale*_*ied 28

试试这个:

  1. 打开Chrome开发者工具
  2. 导航到"来源"选项卡
  3. 在右侧面板中,展开"事件侦听器断点"
  4. 展开"加载"树
  5. 检查beforeunloadunload选项

看看是否有帮助; 截图如下.

已检查Chrome开发工具以及建议的事件侦听器断点

编辑:或者,如果这不起作用,您可以使用Chrome搜索所有已加载的脚本以查找可能负责的代码.显然有很多方法可以用JavaScript刷新页面,但它们大多有一些常见的字符串,如"navigator","location","reload","window".

最后,如果有一个指向同一页面的链接,那么有些JS可能会触发点击它 - 不太可能,但值得探索,如果到目前为止还没有其他工作......

(请原谅我在移动设备上的格式...)


tho*_*rn̈ 8

Firefox(不是Chrome,这很重要)开发人员工具中,转到控制台,输入addEventListener('beforeunload',()=>{debugger}),然后执行您的代码。调试器在该debugger语句处停止之后,查看调用堆栈。您将看到触发事件的原因。Chrome在那里没有。

至少,这对我有用。

  • 这在 Chrome 79 中也适用于我!就我而言,这是由调用“window.location.reload();”的脚本(无意中)引起的。奇怪的是,“DOM 断点”功能根本没有使调试器在“beforeunload”或“unload”处中断。 (2认同)

小智 5

在devtool网络窗格中,切换"保留日志",仔细检查启动器列.