国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js實(shí)現(xiàn)關(guān)閉網(wǎng)頁出現(xiàn)是否離開提示

2019-11-19 14:46:21
字體:
供稿:網(wǎng)友

大家是否經(jīng)常遇到在關(guān)閉網(wǎng)頁的時(shí)候,會(huì)看到一個(gè)確定是否離開當(dāng)前頁面的提示框?想一些在線測(cè)試系統(tǒng)、信息錄入系統(tǒng)等就經(jīng)常會(huì)有這一些提示,避免用戶有意或者無意中關(guān)掉了頁面,導(dǎo)致數(shù)據(jù)丟失。這里面的實(shí)現(xiàn)過程很簡(jiǎn)單,利用了HTML DOM事件中的onunload和onbeforeunload方法。

unload 事件屬性

定義:當(dāng)用戶卸載文檔時(shí)執(zhí)行一段 JavaScript,例如:

// body
<body onunload="goodbye()">

//window
window.onbeforeunload=function(e){     
  var e = window.event||e;  
  e.returnValue=("確定離開當(dāng)前頁面嗎?");

用法:當(dāng)用戶離開頁面時(shí),會(huì)發(fā)生 unload 事件。注意:如果您重載頁面,也會(huì)觸發(fā) unload 事件(以及 onload 事件)。 

觸發(fā)于:

關(guān)閉瀏覽器窗口通過地址欄或收藏夾前往其他頁面的時(shí)候點(diǎn)擊返回,前進(jìn),刷新,主頁其中一個(gè)的時(shí)候點(diǎn)擊 一個(gè)前往其他頁面的url連接的時(shí)候調(diào)用以下任意一個(gè)事件的時(shí)候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit. 當(dāng)用window open打開一個(gè)頁面,并把本頁的window的名字傳給要打開的頁面的時(shí)候。重新賦予location.href的值的時(shí)候。通過input type="submit"按鈕提交一個(gè)具有指定action的表單的時(shí)候。 onbeforeunload 事件屬性

定義:在即將離開當(dāng)前頁面(刷新或關(guān)閉)時(shí)執(zhí)行 JavaScript,例如:

//body
<body onbeforeunload="goodbye()">//window
window.onbeforeunload=function(e){     
  var e = window.event||e;  
  e.returnValue=("確定離開當(dāng)前頁面嗎?");

用法:onbeforeunload 事件在即將離開當(dāng)前頁面(刷新或關(guān)閉)時(shí)觸發(fā)。該事件可用于彈出對(duì)話框,提示用戶是繼續(xù)瀏覽頁面還是離開當(dāng)前頁面。對(duì)話框默認(rèn)的提示信息根據(jù)不同的瀏覽器有所不同,標(biāo)準(zhǔn)的信息類似 "確定要離開此頁嗎?"。該信息不能刪除。但你可以自定義一些消息提示與標(biāo)準(zhǔn)信息一起顯示在對(duì)話框。注意: 在 Firefox 瀏覽器中,只顯示默認(rèn)提醒信息(不顯示自定義信息)。

觸發(fā)于: 

關(guān)閉瀏覽器窗口  通過地址欄或收藏夾前往其他頁面的時(shí)候  點(diǎn)擊返回,前進(jìn),刷新,主頁其中一個(gè)的時(shí)候  點(diǎn)擊 一個(gè)前往其他頁面的url連接的時(shí)候  調(diào)用以下任意一個(gè)事件的時(shí)候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.  當(dāng)用window open打開一個(gè)頁面,并把本頁的window的名字傳給要打開的頁面的時(shí)候。  重新賦予location.href的值的時(shí)候。  通過input type=”submit”按鈕提交一個(gè)具有指定action的表單的時(shí)候。

 瀏覽器支持程度

目前主流瀏覽器都支持這兩個(gè)事件屬性

 

概述

onunload,onbeforeunload都是在刷新或關(guān)閉時(shí)調(diào)用,可以在<script>腳本中通過window.onunload來指定或者在<body>里指定。區(qū)別在于onbeforeunload在onunload之前執(zhí)行,它還可以阻止onunload的執(zhí)行。 onbeforeunload也是在頁面刷新或關(guān)閉時(shí)調(diào)用,onbeforeunload是正要去服務(wù)器讀取新的頁面時(shí)調(diào)用,此時(shí)還沒開始讀取;而onunload則已經(jīng)從服務(wù)器上讀到了需要加載的新的頁面,在即將替換掉當(dāng)前頁面時(shí)調(diào)用。onunload是無法阻止頁面的更新和關(guān)閉的,而 onbeforeunload 可以做到。

附:

頁面加載時(shí)只執(zhí)行onload 

頁面關(guān)閉時(shí)先執(zhí)行onbeforeunload,最后onunload 

頁面刷新時(shí)先執(zhí)行onbeforeunload,然后onunload,最后onload  

附上部分效果圖:

綁定body標(biāo)簽的代碼:

<!DOCTYPE html> <head>  <meta charset="UTF-8">  <title>測(cè)試</title>  <script>    function checkLeave(){      event.returnValue="確定離開當(dāng)前頁面嗎?";    }   </script> </head> <body onbeforeunload="checkLeave()">  測(cè)試 </body></html>

谷歌瀏覽器下的效果:

點(diǎn)擊刷新按鈕:

點(diǎn)擊返回按鈕:

通過任務(wù)欄或者收藏夾前往其他界面:

關(guān)閉頁面:

edge下的效果:

點(diǎn)擊刷新按鈕:

點(diǎn)擊返回按鈕:

關(guān)閉頁面:

 注:在新版的火狐瀏覽器(我是用的版本: 57.0 )里面,上面這種寫法不生效?!

綁定window對(duì)象的代碼:

<!DOCTYPE html> <head>  <meta charset="UTF-8">  <title>測(cè)試</title>  <script>    window.onbeforeunload=function(e){       var e = window.event||e;      e.returnValue=("確定離開當(dāng)前頁面嗎?");   }    </script> </head> <body>  測(cè)試 </body></html>

火狐下的效果:

點(diǎn)擊刷新按鈕:

點(diǎn)擊返回按鈕:

關(guān)閉頁面:

 

注:這種方法在谷歌瀏覽、edge瀏覽器下仍適用,效果與第一種一樣!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 四川省| 保山市| 轮台县| 鄂温| 蕉岭县| 昭平县| 双城市| 阿勒泰市| 绥中县| 工布江达县| 耒阳市| 马尔康县| 游戏| 十堰市| 垦利县| 江永县| 桐梓县| 大宁县| 修水县| 平湖市| 百色市| 辽源市| 乳山市| 新疆| 伽师县| 赫章县| 富锦市| 咸阳市| 宣威市| 北碚区| 鄯善县| 达拉特旗| 乌拉特中旗| 禹城市| 双峰县| 宝丰县| 田林县| 永登县| 绿春县| 鄂州市| 日照市|