我正在关注一本关于 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()
函数发出的。发生了什么事或在这里?感谢您的帮助
最佳答案
此代码返回一条消息,因此浏览器会负责确认用户的导航(或关闭)事件,这也是您收到浏览器特定警报的原因。
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;
})
关于javascript - 返回事件函数导致弹出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33464160/