場景:我有一個web應用程序,我將讓用戶1設置表單中的一些值(#div1
)並將其顯示給下一個用戶(來到瀏覽器在用戶1沒有關閉瀏覽器之後)(顯示將顯示在#div2
中,而#div1
將被隱藏)。但是,如果用戶2刷新瀏覽器,則所有值都將消失。jQuery:試圖刷新或關閉瀏覽器時提示用戶
問題:當用戶嘗試刷新瀏覽器時,如何提醒用戶?網絡應用程序將在Midori
上,而網絡服務器將爲CherryPy
。
或者有沒有辦法保存會話,無論刷新?如何?
場景:我有一個web應用程序,我將讓用戶1設置表單中的一些值(#div1
)並將其顯示給下一個用戶(來到瀏覽器在用戶1沒有關閉瀏覽器之後)(顯示將顯示在#div2
中,而#div1
將被隱藏)。但是,如果用戶2刷新瀏覽器,則所有值都將消失。jQuery:試圖刷新或關閉瀏覽器時提示用戶
問題:當用戶嘗試刷新瀏覽器時,如何提醒用戶?網絡應用程序將在Midori
上,而網絡服務器將爲CherryPy
。
或者有沒有辦法保存會話,無論刷新?如何?
https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeunload
您需要使用onbeforeunload
。基本上,如果您的應用程序處於「繁忙」狀態,您將設置處理程序,詢問用戶他/她是否真的想離開;)
感謝您的回答和鏈接! :) +1 – yvonnezoe
您已經提出了兩個問題。
爲先,「我怎麼能當他試圖刷新瀏覽器提醒用戶?」:
在beforeunload
功能,包括以下內容(與任何你想要的文字,很明顯):
confirm('If you refresh the page your data will be lost');
這將創建一個提醒'確定'和'取消'按鈕。如果用戶按下'OK',頁面會繼續執行它(在你的情況下,刷新);否則,它返回false。
對於第二個問題,「或者有沒有辦法保存會話而不管刷新?」:是的。
編輯:你現在問了第三個問題,「怎麼做?」但是這超出了StackOverflow的問答格式的範圍。快速回答是有幾種方式,包括cookies和DOM存儲以及使用後端。試一試,如果遇到問題,請提出具體問題,我們會提供幫助。
我想他問的是如何在頁面刷新或重新加載時顯示此確認框? –
謝謝您的詳細解答:) +1並且對於問題編輯抱歉:無論如何,仍然感謝您的快速回答。將進一步研究更多關於你之前提到的那些:) – yvonnezoe
您是否在尋找
window.onbeforeunload = function(){
return "Are you sure you want to close the window?";
}
真棒! :D謝謝。但它給我的提示是「此頁面要求您確認您要離開 - 您輸入的數據可能未保存。」 – yvonnezoe
下面應該工作:
window.addEventListener("beforeunload", function (e) {
var message = "Are you sure you want to leave?";
(e || window.event).returnValue = message;
return message;
});
對於你的問題的第二部分,有幾個選項。可能最簡單的是localStorage:
// after form updated
if (typeof Storage !== 'undefined') {
localStorage.formData = formData // where formData is a string containing all the data from the form
}
// on page load (e.g. after refresh)
if (typeof Storage !== 'undefined') {
populateForm(localStorage.formData); // where populateForm is a function that can take the string you saved and does what you want with it (sorry, I didn't really understand that part of the question)
}
*應該*工作,但你真的嘗試過嗎?我做過了(從MDN複製,就像我確信你做的那樣),但我卻無法完成它的工作。 –
在Chrome中完美適用於我 - 您正在使用哪種瀏覽器? –
你是什麼意思,「對下一個用戶」?我真的不明白這裏發生了什麼...... – Amadan
只是將它保存在會話中。只要沒有破壞會話你的價值將被保存。 –
@Amadan只是一個場景。請參閱編輯:)希望解釋:)或者你更喜歡整個故事? – yvonnezoe