beforeunload 事件在當(dāng)頁(yè)面卸載(關(guān)閉)或刷新時(shí)調(diào)用,事件觸發(fā)的時(shí)候彈出一個(gè)有確定和取消的對(duì)話框,確定則離開頁(yè)面,取消則繼續(xù)待在本頁(yè)。handler可以設(shè)一個(gè)返回值作為該對(duì)話框的顯示文本。
以下操作會(huì)觸發(fā) beforeunload 事件:
·關(guān)閉瀏覽器窗口
·通過地址欄或收藏夾前往其他頁(yè)面的時(shí)候
·點(diǎn)擊返回,前進(jìn),刷新,主頁(yè)其中一個(gè)的時(shí)候
·點(diǎn)擊 一個(gè)前往其他頁(yè)面的url連接的時(shí)候
·調(diào)用以下任意一個(gè)事件的時(shí)候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind , location replace , location reload , form submit.
·當(dāng)用window open打開一個(gè)頁(yè)面,并把本頁(yè)的window的名字傳給要打開的頁(yè)面的時(shí)候。
·重新賦予location.href的值的時(shí)候。
·通過input type=”submit”按鈕提交一個(gè)具有指定action的表單的時(shí)候。
例如:
window.addEventListener('beforeunload', function(event) {
document.getElementById('keyword').value = '';
});
在這個(gè)例子中,我們?yōu)?window 對(duì)象添加了一個(gè) beforeunload 事件監(jiān)聽器。當(dāng)用戶嘗試離開頁(yè)面時(shí),會(huì)觸發(fā)這個(gè)事件,并可以通過設(shè)置 event.returnValue 來顯示一個(gè)確認(rèn)對(duì)話框,讓用戶選擇是否真的要離開頁(yè)面。document.getElementById 用于獲取頁(yè)面上具有指定 id 的元素。