从2011年5月25日起, HTML5 规范 声明:onbeforeunload事件的处理函数中调用下列弹窗相关的方法时,可以忽略不执行,window.showModalDialog()
, window.alert()
, window.confirm()
window.prompt()
.
上面的那句话,引用于:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/onbeforeunload
因此,一般情况下,你使用这些方法都不会弹出会话框。经过查找资料,看相关的博文以及相关的技术,最终找到了解决的方案。希望此方案对你有帮助!
<!DOCTYPE html>
<head>
<meta charset="utf-8"/>
<title>网站进入弹出欢迎界面 || 退出弹出欢迎下次光临</title>
<script type="text/javascript">
// 进入时执行
// 页面加载时,弹出欢迎进入本网站
function showEnter(){
alert("尊敬的客户,欢迎光临本网站!");
}
// 页面加载时,触发函数showEnter()
window.onload = showEnter;
// 退出时执行
// 页面退出时,弹出欢迎下次光临
function showLeave(){
debugger; // 次序执行,打断点
return "欢迎下次光临";
}
// 页面退出时,加载函数showLeave()
window.onbeforeunload = showLeave;
</script>
</head>
<body>
</body>
</html>
完整的代码如上所示。
运行结果及其兼容性测试
1、火狐浏览器
不显示。
2、谷歌浏览器
使用F12打开开发者工具能够运行显示。
3、IE浏览器
直接运行显示。
4、360浏览器
直接运行显示。
5、2345浏览器
不显示。
现阶段就这样吧,后面有其他的解决方案了再补充。