2014-02-27 111 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 
    } 
?>