onunload事件是在瀏覽器窗口關閉或者刷新時觸發的事件。它可以用來執行一些清理操作,例如關閉數據庫連接、保存用戶數據等。在這個事件觸發時,頁面的資源和文檔將會被銷毀。
onbeforeunload事件是在瀏覽器窗口關閉或者刷新之前觸發的事件。它可以用來給用戶一個確認框,詢問是否要離開當前頁面。如果用戶選擇離開頁面,那么頁面將會被關閉或者刷新。
在onbeforeunload事件中,可以通過返回一個字符串來自定義確認框的提示信息。如果沒有返回任何值,那么確認框將會顯示默認的提示信息。
例如:
window.onbeforeunload = function() {
return "確認離開當前頁面嗎?";
}
如果用戶選擇離開頁面,那么頁面將會被關閉或者刷新。如果用戶選擇留在頁面,那么返回的字符串將會被忽略。
需要注意的是,onbeforeunload事件的處理函數通常需要在函數內部綁定一個事件監聽器,以防止瀏覽器在關閉或刷新頁面時忽略返回的字符串。例如:
window.addEventListener("beforeunload", function(event) {
event.preventDefault();
event.returnValue = "確認離開當前頁面嗎?";
});
在這個例子中,preventDefault()方法用來阻止默認的確認框彈出,returnValue屬性用來自定義確認框的提示信息。
總結來說,onunload事件在頁面關閉或刷新時觸發,用來執行一些清理操作;而onbeforeunload事件在頁面關閉或刷新之前觸發,用來詢問用戶是否要離開當前頁面。