您将如何阻止页面自动刷新?

How would you stop a page from refreshing automatically?

我在尝试检查一个有趣页面的来源时遇到问题,该页面每 3-5 秒自动刷新一次(可能是由于某些 js 脚本),这会重置我的 Inspect Element Inspector window 每次刷新页面。

除了打开 NoScript 来阻止页面刷新之外,还有其他方法可以阻止该页面刷新或者 Inspector window 重置自身吗自动?

当页面仍在加载时,您可以按 Esc 键。当页面仍然是白色时,按下它。当您此时停止页面加载时,这通常会停止所有自动加载 javascript。 运行 操作的任何脚本通常不会受到影响。每个页面都不一样,尝试不同的时间。

当我使用名为 NovelUpdates 的网站时,javascript 可以隐藏某些元素,当我在页面加载时按 Esc 键时,所有在页面加载后隐藏的元素都可见。然后,当我单击一个将执行 javascript 的按钮时,它可以正常运行。我相信 NoScript 不会解决您的问题。

另一个例子是那些带有烦人的框的网站,这些框会在 10 秒后弹出,表明您不是会员,如果不登录就无法再查看该网站的任何内容,例如某些新闻文章网站。

(更新于 2020-03-30)

在 Firefox 74 中,此选项位于选项 -> 隐私和安全 -> 权限中

(原回复)

Firefox 有防止本机刷新的选项,选项在高级->常规->当网站尝试重定向或重新加载页面时警告我

通常我只是打开 DevTools,必要时切换到适当的面板,然后点击暂停。

打开 DevTools:通过菜单,或按 F12Ctrl+Shift+ICmd+ Shift+I 取决于浏览器和 OS.

切换面板:从 DevTools 顶部的选项卡中选择面板。它将被称为“Debugger”(Firefox、IE)或“Sources”(Chrome)或类似名称。

暂停:在Debugger/Sources面板中,点击暂停按钮(通常看起来像电视遥控器上的暂停按钮,||)或按下键盘相等的。等效键盘是

  • Firefox & Chrome: F8
  • IE: Ctrl+Shift+B

此问题最流行的解决方案是捕获 beforeunload 事件。浏览器将要求用户确认离开页面。最简单形式的代码如下所示:

window.onbeforeunload = function() { return true }

您可以在控制台中输入此代码。或者,您可以简单地将以下 URL 粘贴到浏览器地址栏中(不需要控制台)。您甚至可以将其加入书签。

javascript:window.onbeforeunload = function() { return true }

请注意,现代浏览器可能会将 javascript: 部分粘贴到地址栏中;请务必将其输入回来。


要确定 Firefox 中重定向的原因,请尝试以下操作:

  • 打开 Web Developer Tools (CTRL + SHIFT + I),打开 "Toolbox Options" 并勾选 "Enable persistent logs" 选项。这使得日志在页面加载期间持续存在(否则日志将被清除)。

  • 现在切换到 "Network Monitor" 选项卡。

  • 打开URL并让它刷新。

  • 在“网络监视器”>“原因”列中,您会找出页面重新加载的原因。

原因列非常含糊(Chrome 做得更好)。但是,如果 JavaScript 用于触发页面(重新)加载,那么它至少会向您显示该脚本的文件名和行号。

您可以使用命令 exit(),这等同于 php 中的 die 并且只是停止脚本。 如果您不知道是什么原因造成的,并且您不想寻找 "bad boy",那么您不妨将整个脚本停止在页面的最底部。