我正在关注一本关于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()
函数进行警报。到底发生了什么?谢谢你的帮助
答案 0 :(得分: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;
})