【问题标题】:Prevent Firefox Reload Confirmation Box阻止 Firefox 重新加载确认框
【发布时间】:2015-03-12 01:13:40
【问题描述】:

我有一个用户提交的表单,它会检查一些 Web 服务,当其中一个 API 返回错误时,我会使用 JS 刷新表单,维护 POST 数据。

<script>
        window.onload = function() {
            if(!window.location.hash) {
            window.location = window.location + '#loaded';
            window.location.reload();
            }
        }
</script>

它在 Chrome/Safari 中运行良好。我尝试了下面的变体,但没有成功,部分原因是我要附加到 URI。

window.location=window.location; window.location.href = window.location;

任何帮助都将不胜感激,因为我已经为此花费了很多时间。谢谢。

【问题讨论】:

  • 使用 GET 而不是 POST 提交原始表单。 POST 表示将更改服务器资源的操作,因此会发出警告。 GET 意味着一个只读操作,可以重复而没有任何后果
  • 我知道这是一种选择,但我想尽可能避免这种情况。
  • 为什么要避免它? (我问是因为你的理由可能会提出替代方案)
  • 我的理由并不重要,但感谢您最初的建议。
  • 欢迎,但这有点像说“我不能用螺丝刀敲这个钉子”“为什么不用锤子?” “我不想”。如果您的原因是因为 url 中有您不想要的信息,则可以将 POST 表单重定向到具有可刷新 Id 的 GET url。如果是因为您不知道如何对 GET 参数进行 url 编码,我们可以向您展示如何。如果存在一些无法更改的现有表单逻辑,则 iframe 可能是一种选择。如果您不愿意提供更多信息,那么我们只能说“答案是否定的。您在工作中使用了错误的工具”

标签: javascript jquery firefox reload onbeforeunload


【解决方案1】:

this.location.reload();无需确认即可工作

【讨论】:

    猜你喜欢
    • 2012-09-19
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 2019-07-13
    • 2013-08-18
    相关资源
    最近更新 更多