我在没有框架的单页表单上工作。一个简单的单页面,不使用框架。我正在使用带有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在两个浏览器上都会有相同的行为。
index.html
index.html#foo
index.html#faa
index.html#foo
提交表单后,使用perl创建一个新页面。如果给出的选项有误,则创建的页面将包含一个按钮,该按钮会触发window.history.back()
再次尝试。
这适用于Firefox,它会在您单击后返回所有数据输入。
问题始于Chrome,因为在提交表单并按下后退按钮后,我可以看到Chrome首先转到index.html#foo
,然后自动刷新页面,从而生成URL == index.html。< / p>
我知道如果您想让Firefox的行为与Chrome或IE一样,您可以将onunload=""
添加到正文中。但有什么我可以添加到身体或我可以做的任何事情,使Chrome的行为像Firefox,避免重新加载页面?
history.back()
时将页面更改为原始状态?类似的东西:
onclick="window.location.href=document.history.length(-1)"
谢谢,
答案 0 :(得分:0)
对我来说,Chrome仅在完成文件上传后触发history.back()时强制页面刷新。