将表单提交到URL后,浏览器将该页面再次注册到历史记录中。假设,我在页面X中,然后转到页面Y并提交表单。现在,当我按下浏览器的按钮时,它再次加载相同的页面,即。因此,该表单提交使浏览器再次在浏览器历史记录中注册页面Y. 而且,我支持所有的浏览器和设备。 如何删除浏览器历史记录中的最后一项或停止浏览器在历史记录中再次注册页面?删除浏览器历史记录中的最后一项
0
A
回答
0
您无法编辑用户历史记录。在这方面,您可以做的最好的办法是更改当前页面的后退按钮指向location.replace(pageX)
的位置,以便按下后退按钮不会重新加载相同的页面,而是转到pageX。但如果用户再次按下,则会出现问题,因为该页面的历史记录将再次为pageY。
您最好的选择是保持表单提交刷新页面首先。这样历史将是正确的。这可以通过发送带有AJAX的表单而不是传统的方法来完成。这里是一个使用jQuery来阻止传统表单提交然后发出AJAX请求的例子。
$(document).ready(function() {
$('#myform').on('submit', function(e) {
e.preventDefault();
$.ajax({
url : $(this).attr('action'),
data: $(this).serialize(),
success: function (data) {
// if you want it to do something when it's done, put it here
},
error: alert("broke"),
type: "GET"
});
});
});
更新
第三个很好的选择是只是做你在您的评论说。如果您在表单提交后使用history.back()
,那么用户返回历史记录将按您的要求工作。按回一次将它们带到pageX。它只会是变得奇怪的转发历史。但是按下前进按钮的可能性非常小。用户只需导航到页面,他们为什么会向前推?然后,只要他们在别的地方导航,怪异的前锋历史就会被覆盖。
相关问题
- 1. 删除浏览器历史记录
- 2. 删除浏览器历史记录中的上一页网址
- 3. 清除浏览器历史记录
- 4. 清除Android浏览器历史记录
- 5. 清除CefGlue浏览器历史记录
- 6. 如何从浏览器历史记录中删除页面?
- 7. 从浏览器历史记录中删除页面
- 8. javascript中的浏览器历史记录
- 9. 使用机器人类删除浏览器历史记录
- 10. 带有Angularjs和UIRouter的event.preventDefault()删除浏览器历史记录
- 11. 删除Android浏览器特定域的历史记录
- 12. 复制删除浏览器历史记录
- 13. 使用jQuery删除浏览器历史记录
- 14. Grails的浏览器历史记录?
- 15. ExtJS MVC的浏览器历史记录
- 16. jQuery地址从历史记录中删除最后一个Url
- 17. 浏览器历史记录或CSS
- 18. Phonegap Cordova浏览器历史记录
- 19. 浏览器历史记录管理
- 20. 读取浏览器历史记录
- 21. smartgwt浏览器历史记录
- 22. Ajax +浏览器历史记录
- 23. pushState加扰浏览器历史记录
- 24. JQuery simplePagination.js浏览器历史记录
- 25. Android浏览器历史记录URI?
- 26. Angular2浏览器历史记录导航
- 27. 使用c#清除Asp.net MVC3中的浏览器历史记录?
- 28. 在窗口电话7中清除历史记录浏览器?
- 29. 使用YUI浏览器历史记录的Ajax和浏览器历史记录类
- 30. 从Android中的AsyncTask删除浏览器历史记录时出错
难道你不能只是在浏览器完成后才将浏览器发送给Page X,这样人们就不需要按下后退按钮了? –
@tylermackenzie不,用户应该保持在同一页面,因为它具有除表单提交之外的其他功能。但即使我做了一个history.back(),它仍然在历史记录中,如果用户再次单击向前按钮,他必须点击后退按钮两次才能进入第X页,如果他愿意的话。 –