onbeforeunload事件兩種寫法及效果


在符合W3C標准的瀏覽器里,可以使用addEventListener方法來添加事件。

當不需要為一個事件添加多個處理函數的時候,可以簡單的使用onXXX=function(){}的方式來添加事件處理函數,但是當需要為同一事件添加多次處理函數(handler)時,就要用到addEventListener

一般也碰不到什么問題,然而今天在使用onbeforeunload的時候發現,兩種方式有一點點區別,區別在於返回值的處理。

直接用

window.onbeforeunload=function(){return '確定要離開嗎?'}

這種方式,沒有問題。刷新或者跳轉都能給出正確提示,但是使用addEventListerner時,就沒有用了,如下:

function a(){
return '要離開嗎?';
}
window.addEventListener('beforeunload',a,true)

並沒有任何效果,頁面還是照樣刷新或者離開了。在Google上查了一下,結果得到是這樣的,應該使用event.returnValue來指明要提示的內容,代碼修改完后如下:

function beforeUnloadHandler(event){
event.returnValue = "要離開嗎?"
}
window.addEventListener('beforeunload',beforeUnloadHandler,true);

這樣就可以了,並且根據標准,第一種方式,也應該使用event.returnValue的方式來給出提示。

可以參考這個文章:https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM