window.document.body.onbeforeunload = function()
{
return '您尚未將編輯過的表單資料送出,請問您確定要離開網頁嗎?';
}
當你在網頁中按下 F5 重新整理或點選其他連結試圖離開網頁時,就會先出現提醒訊息
最後,還有個重點觀念,也就是當 onbeforeunload 事件被觸發的同時,如果也有其他事件被觸發的話,在其他事件中不能再修改任何 DOM 物件,因為物件處於正在卸載的狀態,所以當你在其他事件中要執行類似的修改動作,就會影發「未指定的錯誤」的錯誤訊息
所以在撰寫時必須特別注意這個潛在可能發生的錯誤。
當你要進行表單送出時總不能還出現這個離開網頁的提示框吧!所以你還必須在表單的 Submit 按鈕特別加上一段 JavaScript 將 事件取消。
<input type="submit" value="送出"
onclick="window.document.body.onbeforeunload=null;return true;" />
參考 http://blog.miniasp.com/post/2009/08/How-to-avoid-page-reload-or-redirect-by-incident.aspx
沒有留言:
張貼留言