使用$(window).bind("beforeunload", ...[snip]
問,如果一個用戶希望離開頁面產生在一些瀏覽器的一些奇怪的結果。彈出對話框,詢問您是否希望留在頁面上或離開頁面。如果您單擊頁面上的停留選項,則Google Chrome(最新 - 13.0.782.215米)和WinIE7會在「返回」按鈕中彈出最後一個歷史記錄頁面。
爲了說明這一點,當前會話歷史記錄由訪問以下網頁:
- 第3頁
- 第2頁
你決定離開第3頁和beforeunload
事件觸發。您選擇保留在當前頁面上。
你再次點擊後退按鈕,這次決定離開頁面。您應該發現自己處於第2頁,而是在第1頁。您可以再次轉到第2頁。
問題
我怎樣才能防止瀏覽器去除後退按鈕這些網頁時,我們選擇了「留當前頁」選項?可能嗎?問題
使用谷歌瀏覽器,在一個新的窗口,頭http://stackoverflow.com的
實例,並瀏覽了幾個問題都沒有回去。然後點擊Ask Question按鈕。開始在對話框中輸入內容。在您的瀏覽器中按返回。選擇停留在頁面上。再次按下瀏覽器,這次選擇離開頁面選項。你現在已經回到了歷史上的兩頁。如果您不止一次單擊頁面,您基本上可以返回多個頁面。
這是爲什麼?
我不想混淆我的用戶。他們不是計算機型的。
我的代碼(不,這是相關的)
$(window).bind("beforeunload", function(){
if (in_edit > 0){
return "You are currently editing this job.\n\nAre you sure you wish to exit the page?";
}
});
有趣 - 我可以重現這個在Chrome 11(例如),但不是在加那利(15版)。我想這是/是一個錯誤,但無法找到http://www.crbug.com。 –
我能夠在加那利重現它。 crbug.com ID 93858 – dan
我剛剛在加那利嘗試過,並且第一次繞過我認爲*我設法讓它出錯,但現在無法重現:( –