beforeunload 事件在当页面卸载(关闭)或刷新时调用,事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。handler可以设一个返回值作为该对话框的显示文本。
以下操作会触发 beforeunload 事件:
·关闭浏览器窗口
·通过地址栏或收藏夹前往其他页面的时候
·点击返回,前进,刷新,主页其中一个的时候
·点击 一个前往其他页面的url连接的时候
·调用以下任意一个事件的时候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind , location replace , location reload , form submit.
·当用window open打开一个页面,并把本页的window的名字传给要打开的页面的时候。
·重新赋予location.href的值的时候。
·通过input type=”submit”按钮提交一个具有指定action的表单的时候。
例如:
window.addEventListener('beforeunload', function(event) {
document.getElementById('keyword').value = '';
});
在这个例子中,我们为 window 对象添加了一个 beforeunload 事件监听器。当用户尝试离开页面时,会触发这个事件,并可以通过设置 event.returnValue 来显示一个确认对话框,让用户选择是否真的要离开页面。document.getElementById 用于获取页面上具有指定 id 的元素。