You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在load事件触发前打破window.location.reload()页面刷新循环?

如何打破页面load事件触发前的window.location.reload()刷新循环?

我碰到一个网站,会在load事件触发前就调用window.location.reload(),导致页面陷入无限刷新循环。想知道作为用户有没有办法打破这个循环?最好是不影响网站正常使用的方案。

我尝试过的方法

  • 通过Greasemonkey替换window.location.reload:由于window.location是只读属性,无法替换该方法,此方案失败。
  • 通过Greasemonkey监听window.onbeforeunload并选择取消:刷新调用发生在文档加载完成前,缺少transient activation,beforeunload事件不会触发,无法弹出取消提示,没用。
  • 阻止JavaScript(或所有网络请求):确实能停止刷新,但网站也彻底无法正常使用,不是理想方案。
  • 通过开发者工具阻止包含刷新调用的特定文件请求:该文件是Webpack打包的主文件,包含网站大部分功能,阻止后网站同样无法运行,不行。
  • 通过Greasemonkey注入用户脚本替换调用window.location.reload()的函数:目标网站用Webpack的IIFE加载所有函数,目标函数作为回调传递后难以修改,而且这种方法不具备通用性,失败。
  • 通过开发者工具在window.location.reload调用处设置断点,修改局部函数提前抛出错误:至少在Firefox里无效,比如执行(function() {throw new Error(), window.location.reload()})()时,逗号运算符会导致即便抛出错误仍会执行刷新,而Webpack打包的代码多为逗号分隔语句,无法避免,且该方法也不通用。
  • 通过Greasemonkey手动修改全局Webpack的window.webpackChunk_N_E表:不确定现代Webpack是否支持这种操作,尝试将目标方法替换为()=>{}但没效果,推测该方法已作为回调传递,修改全局引用无法生效。
  • 关闭标签页:最后只能放弃。

有没有什么我漏掉的可行方法?或者说,在浏览器中(除禁用JavaScript外),这种在load事件前触发的刷新循环本质上就无法打破?

内容的提问来源于stack exchange,提问作者kalanchloe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:05:47