2012-04-05 60 views
1

用戶在頁1.php上。 sumbit表單重定向到2.php後。在這裏,如果使用瀏覽器後退按鈕,我想重定向到頁面3.php設置瀏覽器後退按鈕的上一頁

如何類似:

  • 1.PHP [提交表單] =>
  • 3.php [頭(位置:2.PHP)] =>
  • 2.PHP

回答

1

你不知道。這超出了網頁的控制範圍,這是一件好事。

如果一個網站可以通過這樣的瀏覽器進行控制,我會感到不安,將我重定向到當我按「返回」時沒有去過的頁面。我的第一本能是做一個病毒掃描或類似的事情,因爲我會認爲有些事情是非常錯誤的。你的用戶會如何反應?

編輯:您編輯與提出的解決方案的問題:「如何類似:1.PHP [提交表單] => 3.php [報頭(位置:2.PHP)] => 2 .php「

如果您使用HTTP標頭執行此操作,則某些瀏覽器可能會將其合併到歷史記錄中的單個頁面中。如果您通過JavaScript重定向進行操作,它將起作用,因爲那樣瀏覽器就不足以將它們合併。您還需要跟蹤狀態(用戶提交表單還是剛回來?),並且您需要確保Cache-Control標題設置正確(no-cache),以便瀏覽器不緩存3.php,因爲我想這個頁面應該看起來不一樣,這取決於你是從1.php提交表單還是從2.php返回。

但是,如果你在中間沒有3.php,並且在1.php上做了相同的狀態跟蹤和Cache-Control,那麼你會得到相同的結果,所以也許你不需要3 .php。

+1

'這不在網頁的控制範圍內 - 不完全是真的。參見['window.onpopstate()'](https://developer.mozilla.org/en/DOM/window.onpopstate)。儘管OP想要做的事情確實是一個壞主意,並且如果可能的話,實施起來非常困難。 – DaveRandom 2012-04-05 14:05:13

1

使用會話。將最後一頁訪問保留在會話變量中,一旦用戶按下後退按鈕,代碼應該讀取該變量並重定向。

但不要指望歷史和東西。

你也可以嘗試history.js(儘管我自己仍然在尋找這個解決方案)。