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瀏覽器

             不顯示。

 

現階段就這樣吧,後面有其他的解決方案了再補充。

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