javascript中关于onbeforeunload事件,页面无法弹出会话框的处理方法

从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浏览器

             不显示。

 

现阶段就这样吧,后面有其他的解决方案了再补充。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章