我在查看一个有趣页面源代码时遇到了问题,该页面每隔3-5秒自动刷新(可能是由于某些JS脚本),每次刷新都会重置我的检查元素检查器窗口。
除了启用NoScript来停止页面自动刷新外,还有其他方法可以停止该页面刷新或防止检查器窗口重置吗?
我在查看一个有趣页面源代码时遇到了问题,该页面每隔3-5秒自动刷新(可能是由于某些JS脚本),每次刷新都会重置我的检查元素检查器窗口。
除了启用NoScript来停止页面自动刷新外,还有其他方法可以停止该页面刷新或防止检查器窗口重置吗?
通常我只需要打开DevTools,必要时切换到适当的面板并点击暂停按钮。
打开DevTools:通过菜单或按下浏览器和操作系统相关的 F12、Ctrl+Shift+I 或 Cmd+Shift+I 键。
切换面板:从DevTools顶部的选项卡中选择相应的面板。它可能被称为“Debugger”(Firefox,IE)或“Sources”(Chrome)或类似名称。
暂停:在Debugger/Sources面板中,点击暂停按钮(通常类似于电视遥控器上的暂停按钮, || ),或按下键盘上的等效键。键盘等效键分别为
debugger;
,但如果你想要长版本,可以参考 https://pastebin.com/yrZhAHd2。不过你应该不需要那个,因为 Louhike 的方法 更简单,而且同样有效(这也是我删除答案的原因)。 - T.J. Crowder解决这个问题最流行的方法是捕获beforeunload
事件。浏览器会询问用户是否离开该页面。以下是最简单的代码形式:
window.onbeforeunload = function() { return true }
javascript:window.onbeforeunload = function() { return true }
javascript:
部分,请确保您重新输入它。
打开Web开发工具(Ctrl+Shift+I),打开“工具箱选项”,并勾选“启用持久日志”选项。这使得日志在页面加载之间保持不变(否则日志会被清除)。
现在切换到“网络监视器”选项卡。
打开URL并让它刷新。
在“网络监视器”>“原因”列中,您将找到页面重新加载的原因。
原因一栏非常模糊(Chrome做得更好)。然而,如果使用JavaScript触发页面(re)load,则至少会显示该脚本的文件名和行号。
setTimeout(function() { location.reload(); }, 1000);
但不会停止这个:setInterval(function() { location.reload(); }, 1000);
在第二种情况下,它只会一遍又一遍地询问您是否要取消。 :-)(虽然是个好主意。) - T.J. Crowder
location.reload
但如果它存储在闭包中,那么这种方法可能行不通。 - Bartek Banachewicz