2014-02-27 72 views
5

是否可以在浏览器中更改后退按钮的地址?比如我在这个页面:使用jQuery更改浏览器中的后退按钮功能

http://website.com/page3.php

我提交表单,并返回这个地址:

http://website.com/page3.php?ok=ok

这之后,当我去到另一个网页,例如

​​

然后点击返回按钮,返回页面它。我对H $ _ GET变量希望,当我点击浏览器的后退按钮在这里:

http://website.com/page3.php

是否有可能后退按钮(浏览器),其每次我点击它每当我刚从具体的变量页面出来,它也不会得到变量?

+0

可能对你有帮助:http://bstavroulakis.com/blog/web/overriding-the-browsers-back-button/ –

回答

2

我想你可以在你的表格中设置一个会话变量http://website.com/page3.php。然后在http://website.com/page3.php?ok=ok提交完成后取消设置。

每次加载url中带有变量的页面时,请立即检查提交会话变量以查看是否将您重定向到表单页面中的页面。如果不是,请将您重定向回page3.page。

我希望自己明白了!

1

这是不可能的,你可以通过使用pushState的,并与浏览器历史记录

0

打不能覆盖的行为,如果用户打开一个链接到你的页面,单击返回,将带他们一起砍东西它再次。

1

一种方法是使用AJAX进行表单发布请求。

另一种方法是将标记添加到表单中,并检查它们的服务器端是否使用header()重定向(如果它们不存在)。 如:

<?php 
    session_start(); 
    if(isset($_GET['ok'])){ 
     if(isset($_SESSION['form_page3_token'])){ 
      $_SESSION['form_page3_token'] = null; 
      //first request : do your stuff 
     }else{ 
      //repost (F5 or Back in the browser => redirect to origin form) 
      header('Location: http://www.website.com/page3.php'); 
     } 
    }else{ 
     $_SESSION['form_page3_token'] = session_id(); 
     //here the code to show the form 
    } 
?>