如何控制浏览器后退按钮

时间:2009-05-26 13:59:35

标签: browser back-button

我想要一个点击浏览器后退按钮的确认窗口。如果我按是,那么前一页将加载,或者我将保持在同一页面中?

任何建议都受到高度赞赏..但请继续......我的问题是直截了当的

事先提前......

3 个答案:

答案 0 :(得分:4)

你为什么要这样做?

您可以使用Javascript阻止他们离开页面,但如果您不能使用它,则无法对其进行任何操作。

通常你应该在正文中使用unload事件(例如在jQuery中,只需添加

jQuery(window).unload(function(evt){
   if(!confirm('Do you really want to leave')){
      evt.preventDefault();
   }});

Prototype有类似的东西,对于纯Javascript,我想它仍然取决于您使用的浏览器,但window.unload = function(evt){return false;} 可能有效。

虽然不记得它的正确语法。

但是我不知道你是否可以仅针对后面限制它,或者它是否会触发所有卸载(例如点击链接,关闭浏览器等)。

如果你想停止它们,因为它们可能在表单中有未保存的数据,那就没问题。如果你想阻止他们因为其他原因而退回,我认为你应该重新考虑原因。

答案 1 :(得分:1)

通常,如果使用后退按钮可能会导致问题,那么您已经遇到了更大的问题。

你可能想要做的是检查你是否做了这样的事情:

  • 对所有更改数据的请求使用POST
  • 使用nonce(唯一ID)来确保表单不会被提交两次

答案 2 :(得分:0)

出于这个原因,我使用noscript。我坚持控制我的浏览器而不是我正在访问的网站。我只允许某些网站的脚本。对于禁用我的后退按钮的任何站点,我不允许它运行脚本。