2010-06-13 21 views
9

我知道這裏的忌諱這個邊界,請不要用「你永遠不應該這樣做」回覆等提醒用戶,當他們點擊瀏覽器後退按鈕 - 有很好的理由

我有一個很在一個嚮導中有很長的表單,有些用戶習慣於使用瀏覽器的後退和前進按鈕,而不是使用表單嚮導中的「後退」和「下一步」按鈕。如果他們點擊瀏覽器的後退按鈕,他們將失去所有的表單數據(這是一個痛苦的屁股,因爲表單很長)。

是否有可能顯示一個提示,告訴他何時會有一個「帶我離開這裏」按鈕和一個「取消」按鈕,所以如果他們點擊取消,它會取消後退按鈕的功能?

+2

我不確定這是一個「永不這樣做」的規則,你打破了。當我嘗試離開我沒有保存更改的頁面時,Stackoverflow會提醒我,Gmail和我的銀行等。我總是感激他們。我還看到多頁面表單數據持續來回瀏覽器操作,但我會滿足於下面的Sarfraz的警報。 – msw 2010-06-13 21:02:10

回答

8

你應該從onbeforeunload事件中返回的消息,像這樣:

window.onbeforeunload = function() { 
    return "Leaving this page will reset the wizard"; 
}; 

請注意,本次活動將在用戶離開頁面任何原因時,即使您的嚮導完成射擊。
當嚮導結束並且不返回消息時,應該設置一個標誌。

+0

window.onbeforeunload = function(){ return「離開此頁面將重置嚮導」; }; 工作得非常好。儘管我更喜歡jQuery語法,但我無法讓Sarfraz Ahmed的代碼顯示取消和確定按鈕。謝謝SLaks – 2010-06-13 21:22:07

+0

當嚮導完成時,你如何設置一個標誌?絕對需要! – 2010-06-15 13:07:27

+0

這取決於。你的嚮導如何完成?創建一個全局'var isWizardFinished = false;',然後在嚮導完成時將其設置爲'true'。 – SLaks 2010-06-15 13:22:33

1

您可以使用jQuery的燒烤插件來重寫一個/上一個按鈕的功能,使其更加無縫過渡整個「嚮導」

http://benalman.com/projects/jquery-bbq-plugin/

雖然這是一個有點複雜的設置,看看提供的例子,如果你正在尋找相同的功能。

很可能你不得不重構你的代碼來適應,而這需要幾個小時。

相關問題