onpagehide、onunload 和 onpageshow、onload事件疑惑


今天在最新版本chrome瀏覽器中測試在什么情況下會觸發onpagehide、onunload事件(點擊一個鏈接,刷新頁面,提交表單,關閉瀏覽器等)。測試代碼粘貼如下:

<!DOCTYPE html>
<html lang='en'>
<head>
<title>測試</title>
<meta charset='utf-8'>
<script type="text/javascript">
function onpageshowfunc() {
alert("onpageshow()");
}
function onloadfunc() {
alert("onloadfunc()");
}
function onunloadfunc() {
console.log("2222222222");
alert("onunloadfunc()");
}
function onpagehidefunc() {
console.log("111111111");
alert("onpagehide()");
}
</script>
</head>
<body onunload="onunloadfunc()" onpagehide="onpagehidefunc()" onpageshow="onpageshowfunc()" onload="onloadfunc()" >
<a href="http://www.baidu.com">test link baidu</a>
</body>
</html>

結果意外發現:

1、onpagehide onunload事件是在銷毀頁面對象后觸發的,onbeforeunload是在銷毀頁面對象前觸發的 ,此時alert()方法已經被鎖定銷毀了,因而一直不能彈出提示框了,后來斷點提示一個錯誤輸出“Blocked alert('onpagehide()') during pagehide.”。“Blocked alert('onunloadfunc()') during unload.”

2、onpagehide比onunload先觸發。

3、onload比onpageshow先觸發。

以上僅自己結論,歡迎指正。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM