gpt4 book ai didi

javascript - Chrome 在 window.history.back() 上强制刷新页面

转载 作者:行者123 更新时间:2023-12-05 07:47:18 25 4
gpt4 key购买 nike

我正在处理没有框架的单页表单。不使用框架的简单单页。我正在使用 history.pushState 的哈希系统,因此根据单击的 div,我分配了不同的哈希。例如:

        var stateObj = { id: "file" };


$(document).on('click', "#foo", function () {
showTemplate(templates_main, data);
history.pushState(stateObj, "page 1", '#foo')

}),

$(document).on('click', "#faa", function () {
showTemplate(templates_main, data);
history.pushState(stateObj, "page 1", '#faa')

}),

在提交表单之前,pushState 在两种浏览器上的行为相同。

  • 页面 URL == index.html
  • 点击#foo,URL == index.html#foo
  • 点击#faa URL == index.html#faa
  • 点击返回 URL 应该是 index.html#foo

提交表单后,将使用 perl 创建一个新页面。如果给定的选项有误,创建的页面将包含一个按钮,该按钮会触发 window.history.back() 以重试。

这适用于 Firefox,它还会在您单击返回时返回所有数据输入。

问题从 Chrome 开始,因为在提交表单并按下后退按钮后,我可以看到 Chrome 首先转到 index.html#foo 然后自动刷新页面,导致 URL == 索引.html。

我知道如果你想让 Firefox 的行为像 Chrome 或 IE,你可以在正文中添加 onunload=""。但是有没有什么我可以添加到正文或我可以做些什么来使 Chrome 像 Firefox 一样运行并避免重新加载页面?

  • 为什么 Chrome 会这样做?
  • 如何避免页面刷新?或
  • 如何在执行 history.back() 后,在页面重新加载后将页面更改为原始状态?

类似于:

onclick="window.location.href=document.history.length(-1)"

谢谢,

最佳答案

对我而言,Chrome 仅在完整文件上传后触发 history.back() 时才强制刷新页面。

关于javascript - Chrome 在 window.history.back() 上强制刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com