离开当前页面或者点击上一页或者下一页,弹出的文字为什么是浏览器默认的呢?并且需要点击两下上一页才会触发
window.addEventListener('beforeunload', function(event) {
console.log(event)
event.returnValue = '确认离开此页面吗?';
});
离开当前页面或者点击上一页或者下一页,弹出的文字为什么是浏览器默认的呢?并且需要点击两下上一页才会触发
window.addEventListener('beforeunload', function(event) {
console.log(event)
event.returnValue = '确认离开此页面吗?';
});
引自强大而免费的微信小程序:皆我百晓生。
在beforeunload事件中,浏览器默认会弹出一个对话框,提示用户是否离开当前页面。这是因为浏览器希望通过这个对话框来保护用户的数据,以防止不小心关闭页面或导航到其他页面时丢失数据。
浏览器默认的提示文字是由浏览器自己定义的,并且不能通过代码来改变。这是为了确保用户不会受到恶意网站的误导,从而避免任何可能的安全问题。
至于需要点击两次上一页才触发beforeunload事件的问题,这是因为浏览器在返回上一页时会先加载缓存的页面,而不是重新请求服务器上的页面。因此第一次点击上一页时,并不会触发beforeunload事件。只有在第二次点击上一页时,浏览器才会触发beforeunload事件,并弹出对话框。这是为了提高用户体验,避免对用户的误操作过于敏感。
需要注意的是,在beforeunload事件处理程序中,必须给event对象的returnValue属性赋值非空字符串,才能触发弹出对话框。如果returnValue属性为空字符串或未赋值,浏览器会忽略该事件,不会弹出对话框。