onunload事件是在浏览器窗口关闭或者刷新时触发的事件。它可以用来执行一些清理操作,例如关闭数据库连接、保存用户数据等。在这个事件触发时,页面的资源和文档将会被销毁。
onbeforeunload事件是在浏览器窗口关闭或者刷新之前触发的事件。它可以用来给用户一个确认框,询问是否要离开当前页面。如果用户选择离开页面,那么页面将会被关闭或者刷新。
在onbeforeunload事件中,可以通过返回一个字符串来自定义确认框的提示信息。如果没有返回任何值,那么确认框将会显示默认的提示信息。
例如:
window.onbeforeunload = function() {
return "确认离开当前页面吗?";
}
如果用户选择离开页面,那么页面将会被关闭或者刷新。如果用户选择留在页面,那么返回的字符串将会被忽略。
需要注意的是,onbeforeunload事件的处理函数通常需要在函数内部绑定一个事件监听器,以防止浏览器在关闭或刷新页面时忽略返回的字符串。例如:
window.addEventListener("beforeunload", function(event) {
event.preventDefault();
event.returnValue = "确认离开当前页面吗?";
});
在这个例子中,preventDefault()方法用来阻止默认的确认框弹出,returnValue属性用来自定义确认框的提示信息。
总结来说,onunload事件在页面关闭或刷新时触发,用来执行一些清理操作;而onbeforeunload事件在页面关闭或刷新之前触发,用来询问用户是否要离开当前页面。