return 在事件函数中导致弹出警报
return in an event function results in alert pop-up
我正在关注 JavaScript 上的一本书。令我困惑的页面如下:http://javascriptbook.com/code/c06/html5-events.html.
当用户按下 "Next" 按钮时,会触发一个事件。这是指定事件侦听器的代码:
window.addEventListener('beforeunload', function(event) {
var message = 'You have changes that have not been saved';
(event || window.event).returnValue = message;
return message;
})
此代码会生成警报,并让我留在此页面 或离开。我不明白这里的语法。我认为警报是用 alert()
函数发出的。发生了什么事或在这里?感谢您的帮助
此代码 returns 一条消息,因此浏览器负责确认用户的导航(或关闭)事件,这也是您收到浏览器特定警报的原因。
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.
});
如果您尝试以下没有 returns 消息的代码,您将不会收到确认提示框,但您仍然可以捕获事件并执行操作。
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 上的一本书。令我困惑的页面如下:http://javascriptbook.com/code/c06/html5-events.html.
当用户按下 "Next" 按钮时,会触发一个事件。这是指定事件侦听器的代码:
window.addEventListener('beforeunload', function(event) {
var message = 'You have changes that have not been saved';
(event || window.event).returnValue = message;
return message;
})
此代码会生成警报,并让我留在此页面 或离开。我不明白这里的语法。我认为警报是用 alert()
函数发出的。发生了什么事或在这里?感谢您的帮助
此代码 returns 一条消息,因此浏览器负责确认用户的导航(或关闭)事件,这也是您收到浏览器特定警报的原因。
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.
});
如果您尝试以下没有 returns 消息的代码,您将不会收到确认提示框,但您仍然可以捕获事件并执行操作。
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;
})