1. 程式人生 > >捕獲瀏覽器關閉、重新整理事件 並進行處理

捕獲瀏覽器關閉、重新整理事件 並進行處理

window.onbeforeunload   =   function()      
{ var n = window.event.screenX - window.screenLeft; var b = n > document.documentElement.scrollWidth-20; if(b && window.event.clientY < 0 || window.event.altKey) { alert("關閉瀏覽器事件"); //這裡可以放置你想做的操作程式碼 } }
<script language="JavaScript" type="text/javascript">   
window.onbeforeunload = CloseEvent;   
var DispClose = true;   
function CloseEvent()   
{   
    if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){   
    if (DispClose)   
    {   
        return "是否離開當前頁面?";   
    }   
    }   
}   
window.onunload= UnLoadEvent;    
function UnLoadEvent()   
{if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){   
    DispClose = false;   
    //在這裡處理關閉頁面前的動作   
    window.close();   
}   
}   
  
  
</script>   
如果是其他頁面離開的話就不做上面的 window.close處理   
    只要將 onunload 設為null 就可以了 window.onunload= null;    
  
  
  
  
function submittest(){   
//  var pfv = parseInt($("#pf").html());   
    var pfv = 5;   
    if(rms < pfv){   
        $("#dialog-time").html("考試時間不足"+pfv+"秒,不能交卷!");   
        $("#dialog-time").dialog("open");   
    }else{   
        var qf = parseInt($("#qf").html());   
        if(qf>0 && parseInt(lms)){   
            window.onunload= null;    
            $("#dialog-confirm").html("您還有"+qf+"道試題未做,是否繼續交卷!");   
            $("#dialog-confirm").dialog("open");   
        }else{   
            return submital();   
        }          
    }   
}   
在做一些關於會員線上的問題時,往往我們要根據覽器是否關閉來判斷使用者是否下線,然後再從session和application中將此使用者移除。   由於瀏覽器是無狀態的,在這時候捕捉瀏覽器關閉會出現兩種情況:   1.真正的關閉瀏覽器 (a.點選關閉按鈕 b.右擊工作列關閉 c.按alt+F4關閉)   2.重新整理瀏覽器。   那如何判斷區分這兩種動作呢?   一. Javascript程式碼處理方法:
function window.onbeforeunload()     
     {          
        //使用者點選瀏覽器右上角關閉按鈕或是按alt+F4關閉   
        if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)     
        {     
         // alert("點關閉按鈕");   
               document.getElementById("hiddenForm:hiddenBtn").click();   
            // window.event.returnValue="確定要退出本頁嗎?";     
        }   
        //使用者點選工作列,右鍵關閉。s或是按alt+F4關閉   
        else if(event.clientY > document.body.clientHeight || event.altKey)   
        {   
            // alert("工作列右擊關閉");   
               document.getElementById("hiddenForm:hiddenBtn").click();   
            // window.event.returnValue="確定要退出本頁嗎?";     
        }   
        //其他情況為重新整理     
        else  
        {     
            // alert("重新整理頁面");   
        }     
     }   

其中 event.clientX                             滑鼠游標X座標               document.body.clientWidth     窗體工作區寬度             event.clientY                              滑鼠游標Y座標             event.altKey                               是否按下alt鍵 
<body scroll="no" onbeforeunload="return CloseEvent();" onunload="UnLoadEvent()" >   
</body>   
  
<script language="JavaScript" type="text/javascript">   
     
    var DispClose = true;   
    function CloseEvent()   
    {   
        if (DispClose)   
        {   
            return "是否離開當前頁面?";   
        }   
    }   
      
    function UnLoadEvent()   
    {   
        DispClose = false;   
        //在這裡處理關閉頁面前的動作   
    }  
在頁面解除安裝之前引發onbeforeunload事件,如果使用者選擇“是”即確定解除安裝頁面將引發onunload事件,否則返回頁面不做任何操作

相關推薦

捕獲瀏覽器關閉重新整理事件 進行處理

window.onbeforeunload = function() { var n = window.event.screenX - window.screenLeft; var b = n > document.documentElement.s

捕獲瀏覽器關閉重新整理事件,在窗體關閉時從全域性物件裡移除當前使用者

//以下是主頁面的js程式碼,轉的 <script type="text/javascript"> //頁面即將關閉事件 function window.onbeforeunload() { //使用者點選瀏覽器右上

vs2017 瀏覽器關閉js 程式碼 導致 自動退出除錯狀態

在 vs2017 的 工具->選項  web專案 項 取消勾選  瀏覽器視窗關閉時停止偵錯程式 而我在使用 wangEditor 富文字編輯器時,使用自定義上傳圖片的方法,由於 勾選 瀏覽器視窗關閉時停止偵錯程式 這個選項,導致請求上傳圖片 的 Control

瀏覽器關閉用什麼事件判斷

js標籤只有onload\onunload\onbeforeunload事件,而沒有onclose事件。 不管頁面是關閉還是重新整理都會執行onunload事件。 如何捕捉到頁面關閉呢? 頁面載入時只執行onload 頁面關閉時只執行onunload 頁面重新整理時先

html頁面關閉重新整理前提示

var isLoad=false; window.onload = function(){ isLoad=true; }; window.onbeforeunload = function() { var result=getEntity('

js如何實現在監測頁面關閉重新整理事件

有一個需求,當用戶在頁面中進行重新整理和關閉頁面的時候顯示一個彈框提示使用者功能。 於是自己就想到onbeforeunload、onunload、onload這幾個事件,但是在使用的過程中有種心累的感覺。。。 onbeforeunload:在頁面重新整理和關閉的時候觸發

Java實現獲取伺服器日誌進行處理解析

一、伺服器登陸公鑰祕鑰設定 步驟如下: 1、本機生成私鑰公鑰檔案 本機進入到.ssh目錄下,c:/Users/**/.ssh, 在該目錄下執行 $ ssh-keygen -t rsa 然後一路回車即可。 說明:如果原先./ssh目錄下有id_rsa  id_rsa.

從日誌中心獲取資料進行處理和預警

package com.ccservice.train.app.Reptile_mobile_warning.task; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; imp

攔截asp.net輸出流進行處理的方法

本文例項主要實現對已經生成了HTML的頁面做一些輸出到客戶端之前的處理。 方法的實現原理是:把Response的輸出重定e78.com向到自定義的容器內,也就是我們的StringBuilder物件裡,在HTML所有的向頁面輸出都變成了向StringBuilder輸出,然後我

STM32F4xx 取得攝像頭資料進行處理

  在官方給的例程檔案中stm32f4xx_it.c是用來放各個中斷服務的檔案。攝像頭的中斷服務在void DCMI_IRQHandler(void)函式裡面,我們這用到的列中斷,所以對其中的if (DCMI_GetITStatus(DCMI_IT_LINE) != RESET) 進行新增程式碼即可,最後不

使用TestNG進行瀏覽器(IEChromeFireFox)發兼容性測試

內容 utf oid 設置 tac www. intern else if ins Web測試項目中經常會進行瀏覽器兼容性相關的測試工作,而兼容性測試的工作重復性相當高,這裏TestNG提供了並發執行執行測試用例的功能,可以讓測試用例以並發的形式執行,實現並發測試不同瀏覽器

js監聽瀏覽器關閉事件(區分重新整理關閉,相容IE9,10,11,Edge,Chrome和Firefox)

由於各瀏覽器相容性不同,所以首先要先區分各瀏覽器 var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字串 var isOpera = userAgent.indexOf("Opera") > -1; //判斷是否Oper

js實現"關閉視窗和瀏覽器事件消除session會話,

親測IE,火狐,chrome有效  廢話不多說,上程式碼: ​ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DO

javascript捕獲瀏覽器視窗關閉事件

為了防止使用者不小心關閉瀏覽器視窗,或者我們想在瀏覽器視窗關閉的時候做一些事,那麼我們會使用到window物件的onbeforeunload和onunload。 <script type="te

pushState()popstate事件配合ajax實現瀏覽器前進後退頁面區域性重新整理

最近研究pushState,看了網上的文章還是不怎麼會用,於是自己摸索著理解使用,終於實現區域性重新整理同時前進後退。 首先說說pushState(),這個函式將當前的url等資訊加入history堆疊中; 當點選瀏覽器的前進後退按鈕時,會觸發popstate事件,所以可

sell01 環境搭建編寫持久層進行測試

boot 就會 -s 虛擬 調試 deb project 直接 jdk1 1 環境配置   JDK  1.8   MAVEN  3.5   MYSQL  5.7   VirtualBox  5.1 2 搭建MYSQL環境   下載 VM 和 虛擬鏡像文件   虛擬鏡

javascript事件兼容處理以及時間冒牌捕獲

js兼容/cancelBubble阻止事件冒泡 function cancelBubble(ev){ var ev=ev||window.event; if(ev.stopPropagation){

js 捕獲瀏覽器後退事件

pushstate 捕獲 none doc counter 回退 不可 cti splay $(document).ready(function(e) { var counter = 0; if (window.histor

JS——瀏覽器關閉事件

win listener lis pushstate document fun ops turn class onbeforeunload 關閉或刷新瀏覽器會觸發此事件 window.onbeforeunload = function(ev) {

一個實現瀏覽器網頁與本地程序之間進行雙向調用的輕量級強兼容可擴展的插件開發平臺—本網通

特殊 git 運行環境 mac office文檔 linu 網頁 中繼 安全 通過本網通插件平臺可實現在網頁中的JavaScript腳本無障礙訪問本地電腦的硬件、調用本地系統的API及相關組件,同時可徹底解決ActiveX組件在Chrome、FireFox、Opera、Ed