2010-02-25 166 views
8

是否有使用JavaScript(或別的東西)來檢測/防止用戶點擊瀏覽器的後退/前進按鈕什麼辦法?疼痛瀏覽器的後退按鈕

我想了解一下常見的做法來處理這個問題。特別是在像訂購這樣的工作流程中,這真的很痛苦。

+13

好(不一定是常見)的做法是,以確保您的應用程序實際工作,即使面對使用他的瀏覽器,因爲它是設計的用戶。 – 2010-02-25 17:30:54

+1

這必須是關於SO的最重複的問題之一。我很驚訝五個回答這個問題的人都記得十次左右看到這個問題。 – 2010-02-25 19:32:42

+0

@約翰:沒有,我只有一個月左右的成員。我可以看到右邊有幾個相關的問題... – 2010-02-25 19:43:41

回答

11

其實防止用戶使用後退或前進按鈕是壞的可用性和會讓用戶感到失望了很多 - 說白了,它是經過開發人員的問題反饋給用戶。

我認爲Post/Redirect/Get pattern,加上window.onbeforeunload在JavaScript(如SO使用)將是真正有用的你的情況。

+0

它實際上'window.onbeforeunload'(我剛纔提出這個錯字我自己)。 – 2010-02-25 17:38:29

+0

@Marcel - 謝謝你指出。 – 2010-02-25 17:39:51

0

都能跟得上,這是不可能的,你不能篡奪從用戶的瀏覽體驗,但希望應該有一個工作圍繞這個....

0

據我所知,沒有,但您可以使用window.onbeforeunload事件警告用戶在丟失數據時不要離開。請記住,這不適用於Opera。

1

如果你建立一個頁面的Web應用程序(即:單一頁面加載,那麼所有的修改都在使用Javascript該頁面動態完成的),你必須選擇:

當用戶點擊返回按鈕,你離開然後,如果您需要/想要更多地控制後退/下一步按鈕的行爲,您可以添加一個散列(#)鍵,這個頁面是唯一的一個,並且您可以通過事件警告用戶window.onbeforeunload

然後,來處理。
見我回答這個問題:Change the get parameters in the address bar in jquery