2015-11-01 21 views
1

我正在關注JavaScript的一本書。困惑我的頁面如下:http://javascriptbook.com/code/c06/html5-events.html返回事件功能導致警報彈出

當用戶按下「下一步」按鈕事件觸發。這是指定事件偵聽器的代碼:

window.addEventListener('beforeunload', function(event) { 
    var message = 'You have changes that have not been saved'; 
    (event || window.event).returnValue = message; 
    return message; 
}) 

該代碼產生警報,並提供我留在這個頁面離開上。我在這裏沒有得到語法。我認爲警報是用alert()函數進行的。什麼是或在這裏?感謝您的幫助

+1

類似警報的彈出窗口是「beforeunload」事件的全部要點。 – Pointy

+0

哦,不知道。我仍然沒有得到返回值如何在alert中結束 – brumbrum

+1

調用事件處理函數的代碼將它放在那裏。 –

回答

3

此代碼返回一條消息,因此瀏覽器負責確認用戶是否導航(或關閉)事件,這也是您獲取瀏覽器特定警報的原因。

window.addEventListener('beforeunload', function(event) { 
    var message = 'You have changes that have not been saved'; 
    (event || window.event).returnValue = message; 
    return message; // alerts with this message. 
}); 

如果你嘗試下面的代碼,這犯規返回消息,那麼你就不會得到確認提示框,但你仍然可以捕捉事件,做的東西。

window.addEventListener('beforeunload', function(event) { 
    //var message = 'You have changes that have not been saved'; 
    //(event || window.event).returnValue = message; 
    localStorage.eventCaptured = 'eventCaptured without alert'; // gets saved to localStorage 
    //return message; 
})