2011-05-10 65 views
1

我們的應用程序禁止出於以下原因返回。 基本上,因爲這就是我們的應用程序的工作方式(JSF以facelets作爲GUI) 您必須在歡迎站點上輸入,一旦您選擇了應用程序流程,您只能在告訴應用程序時離開/中止(例如,按下按鈕)。如果您只是瀏覽例如在地址欄中輸入「example.com」,您的流量狀態將被保存,一旦您重新登錄,您可以恢復工作。回去只有當它是專門用這樣的「後退」提交按鈕設計時纔可能的。 當然,用戶不斷按下'後退'按鈕(我也這樣做),他們不斷收到'錯誤:會話不同步'。這是一個學習過程,幾年前我們只是禁用了後退按鈕來清楚說明。可悲的是,這不再被支持。 因此,不是以困難的方式教導用戶並強迫他重新登錄,有沒有一些很好的選擇我缺少?在Firefox和IE中禁用/禁用後退按鈕的替代方案

我發現this鏈接應該提供3種方法來禁用後退按鈕 - 但實際上它只是進一步證實了這樣一個事實,即不可能以半好的方式做到這一點。

當用戶試圖去到以前的頁面,您可以他重定向到他應該是在換句話說頁面
+1

[禁用瀏覽器上的返回按鈕](http://stackoverflow.com/questions/87422/disabling-back-button-on-the-browser) – 2011-05-10 17:28:14

+0

感謝您指出了這一點(對於其他訪問者) 。當然,我閱讀了這篇文章,但是人們認爲最好的做法是「不要打破後退按鈕」。我必須打破它 - 保持良好用戶體驗的最佳選擇是什麼? – Toskan 2011-05-11 09:18:34

回答

2

趕上「不同步」和重定向他

+0

問題在於重定向。我們的應用不允許重定向,例如你不能只從谷歌跳轉到頁面C,一旦瀏覽完畢,你總是必須從頁面A開始(我們存儲一個請求作用域連續編號)。但是,我們可以通過捕獲非法請求並重定向到正確的頁面(並添加新的請求編號)來實現此行爲。看起來有點危險。 – Toskan 2011-05-13 08:43:07

+0

然後當你看到有人去C頁面,當他不應該(從外部鏈接或後退按鈕)重定向他到頁面A – 2011-05-14 10:26:23

+0

只是似乎沒有告訴用戶更好的錯誤信息,說明返回被禁用...你點擊返回並結束你剛剛在同一頁面。 – Toskan 2011-06-10 11:57:49

1

你可能會在這裏找到一個可行的解決方案How do I insert an entry into browsing history via JavaScript 通過在瀏覽器的歷史記錄中插入一個額外的步驟(可能是指向帶有查詢字符串參數的當前頁面的鏈接,導致給用戶一個漂亮的大紅色框消息),或者您可以嘗試將事件處理程序附加到OnBeforeUnload事件,用戶在試圖離開頁面時會得到一個確認對話框(當點擊提交按鈕時,您想要刪除該處理程序)。

+0

實際上,我認爲瀏覽器歷史記錄中的更改不會(應該?!?)起作用,只要想象一下,當您進入網站時,有人在您的歷史記錄中添加了一百萬條記錄。 – Toskan 2011-05-11 09:36:59