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

如何用JavaScript实现满足条件时带表单重提交确认的页面重载

问题背景

需要实现满足以下规则的JavaScript重载逻辑:

  • 触发前提1:网页完全加载完成
  • 触发前提2:加载完成后document.title值为504 Gateway Time-out
  • 触发动作:执行带表单重提交确认的页面重载

你提供的测试脚本存在多处语法和逻辑错误,无法正常运行。

原有脚本错误点
if (document.title == '504 Gateway Time-out' && "document.readyState === "complete"")
{setTimeout(function() {window.location.reload(true);},}
  1. 加载状态判断逻辑被双引号包裹,变成了恒真的字符串,完全没有判断效果
  2. setTimeout语法残缺:缺少延迟时间参数、闭合括号缺失,运行直接报语法错误
  3. 没有绑定页面加载监听事件,脚本执行时机不可控,可能在页面未加载完成时就提前判断标题
  4. reload(true)参数会强制绕过缓存从服务器拉取资源,不会触发表单重提交确认,不符合需求
正确实现方案

直接绑定load事件,等页面所有资源加载完成后再做标题校验,校验通过后调用无参数的reload方法即可触发带表单重提交确认的重载:

window.addEventListener('load', function() {
  if (document.title === '504 Gateway Time-out') {
    window.location.reload();
  }
});

如果需要增加延迟避免频繁重试,可以加定时逻辑,比如延迟3秒再重载:

window.addEventListener('load', function() {
  if (document.title === '504 Gateway Time-out') {
    setTimeout(function() {
      window.location.reload();
    }, 3000);
  }
});

补充说明:表单重提交确认弹窗只会在当前504页面是POST请求返回结果时出现,如果是普通GET请求返回的504,调用reload会直接刷新页面,不会弹出确认提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 23:33:30