浏览器如何监听前进后退按钮的点击事件?

如何,比如
点击后退浏览器自带后退按钮,页面不回退,alert(111);

点击前进按钮,页面不前进,alert(222);

阅读 12.8k
2 个回答

试一下window.onpopstate

js监控不了浏览器的操作,因为浏览器前进后退是系统级的,js没那权限。

下面有一些监听事件,或许对你有所帮助

//页面关闭时调用
$(window).on("unload", function(event){});
//页面刷新时调用
$(window).on('beforeunload', function(event) {});
//用户离开当前网页跳转到另外一个页面时触发
$(window).on('onpagehide', function(event) {});
//用户退出页面
$(window).on("onunload", function(event){});

或者你可以阻止浏览器的前进后退:

window.history.forward(-1); //禁止浏览器的前进与后退

如果你是为了防止用户提交表格再退回去重复提交,那么可以这样解决:
页面1是表单,页面2是提交成功页面,从A到B正常,从B按倒退到A就重复提交了。可以在服务器端生成一个唯一的字符串Str放到页面1的form里提交,一起存入数据库,当用户点击后退并选择重新提交时,这个Str拿去对比数据库已有的数据,这样就不怕重复了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题