日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

JS之onunload、onbeforeunload事件详解

發(fā)布時間:2024/8/26 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 JS之onunload、onbeforeunload事件详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介

onunload,onbeforeunload都是在刷新或關閉時調(diào)用,可以在<script>腳本中通過 window.onunload來調(diào)用。區(qū)別在于onbeforeunload在onunload之前執(zhí)行,它還可 以阻止onunload的執(zhí)行。

onbeforeunload 是正要去服務器讀 取新的頁面時調(diào)用,此時還沒開始讀取;而onunload則已經(jīng)從服務器上讀到了需要加載的新的頁面,在即將替換掉當前頁面時調(diào)用。

onunload事件

onunload 事件在用戶退出頁面時發(fā)生。

onunload 發(fā)生于當用戶離開頁面時發(fā)生的事件(通過點擊一個連接,提交表單,關閉瀏覽器窗口等等。)

注意: onunload 事件同樣觸發(fā)了頁面載入事件(+ onload 事件)。

語法

直接使用在html中:

<body onload="SomeJavaScriptCode">

注:以下 HTML 標簽支持 onunload :<body>, <frameset>

JavaScript 中:

window.onunload=function(){SomeJavaScriptCode};

例子:

//JS document
window.onunload = function(){
alert("unload is work");
}

瀏覽器兼容情況

IE瀏覽器 頁面跳轉(zhuǎn)刷新頁面能執(zhí)行,但關閉瀏覽器不能執(zhí)行;
firefox 頁面跳轉(zhuǎn)能執(zhí)行,但刷新頁面、關閉瀏覽器不能執(zhí)行;
Safari 刷新頁面、頁面跳轉(zhuǎn),關閉瀏覽器都會執(zhí)行;
Opera、Chrome任何情況都不執(zhí)行。

如圖所示:

大體一句話描述:IE, Firefox, 和 Safari 支持 onunload 事件, 但是 Chrome 或者 Opera 不支持該事件。

onbeforeunload事件

onbeforeunload 事件在即將離開當前頁面(刷新或關閉)時觸發(fā)。

該事件可用于彈出對話框,提示用戶是繼續(xù)瀏覽頁面還是離開當前頁面。

對話框默認的提示信息根據(jù)不同的瀏覽器有所不同,標準的信息類似 "確定要離開此頁嗎?"。該信息不能刪除。

但你可以自定義一些消息提示與標準信息一起顯示在對話框。

注意: 如果你沒有在 <body> 元素上指定 onbeforeunload 事件,則需要在 window 對象上添加事件,并使用 returnValue 屬性創(chuàng)建自定義信息(查看以下語法實例)。

語法

html中使用:

<element onbeforeunload="myScript">

JavaScript 中:

object.onbeforeunload=function(){myScript};

JavaScript 中, 使用 addEventListener() 方法:

object.addEventListener("beforeunload", myScript);

注意: Internet Explorer 8 及更早 IE 版本不支持 addEventListener() 方法。

JS中使用例子寫法一:

//JS document
window.onbeforeunload = function(){
return "onbeforeunload is work";
}

return 的值 為你需要告訴用戶的提示信息如上面demo的話瀏覽器的提示是這樣(firefox ,Chrome并不支持文字提醒)

JS中使用例子寫法二:

window.onbeforeunload = function(event) {
    event.returnValue = "我在這寫點東西...";
};

值得注意的是,網(wǎng)上流傳說 可以通過檢查 e.clientX e.clientY 判斷 用戶是否點擊 右上角關閉瀏覽器的,但是實踐發(fā)現(xiàn) 只有 IE6,IE7,IE8 能獲取得到具體數(shù)值,其他瀏覽器均為 undefined。

瀏覽器兼容情況

IE、Safari 完美支持
Firefox、Chrome 不支持文字提醒信息
Opera 不支持

如圖所示:

IE6,IE7 使用 onbeforeunload 遇到的bug

凡是 <a> 標簽 都會觸發(fā) onbeforeunload事件 包括 href=”javascript:void(0)” 這種。

在IE6,IE7 下面 點擊 里面的 a 標簽,蛋疼的事情就發(fā)生了。

解決方法:給這 a標簽的 父級 添加 onclick=function(){return false} 即可,不過添加了這個之后 要確保 父級里面沒有 input type=”checkbox” 的標簽,否則會導致其無效不可點擊。

總結(jié)

以上是生活随笔為你收集整理的JS之onunload、onbeforeunload事件详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。