從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瀏覽器
不顯示。
現階段就這樣吧,後面有其他的解決方案了再補充。