[Javascript]获取窗口关闭事件

JS监听浏览器关闭、刷新及切换标签页触发事件 蛮简单的东西,知道就会,不知道就不会,没什么逻辑可言。简单记录一下,只为加深点儿印象。 阅读详情

需求:监听用户关闭窗口的事件,然后添加日志统计


方法: 使用 beforeunload


示例:

window.addEventListener("beforeunload", function( event ) {
  event.returnValue = "\o/";}
); 
//is equivalent to
window.addEventListener("beforeunload", function( event ) {
  event.preventDefault();
});


参考:https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/beforeunload


另外,在使用的时候还发现一个webkit对settimeout() 的处理问题:

当用户切换窗口后,会暂停之前窗口进程的settimeout() , 比方说,我在A窗口使用settimeout( ) 5s,当在第4s切换至页面B,此时A页面的settimeout( )会暂停,当再次切换至A页面,A页面继续执行settimeout( ),1s后执行相应操作。


其实也不算是问题,是webkit内核的一种处理策略吧。

所以,如果有用到settimeout( )进行时间判断,可能需要考虑通过自建一个时间进程去统计了。

javascript页面关闭事件 javascript页面关闭触发事件 非常实用 立即下载

相关推荐

js实现关闭网页出现是否离开提示

大家是否经常遇到在关闭网页的时候,会看到一个确定是否离开当前页面的提示框?想一些在线测试系统、信息录入系统等就经常会有这一些提示,避免用户有意或者无意中关掉了页面,导致数据丢失。这里面的实现过程很简单,利用了HTML DOM事件中的onunload和onbeforeunload方法。 unload 事件属性 定义:当用户卸载文档时执行一段 JavaScript,例如: // body<body onunload="goodbye()"> //window[removed]=function(e){       var e = window.event||e;    e

获取页面的关闭事件

function closeEvent(event){//获取事件类型var s = event.type;if(s=='unload'){exit();}} js中的代码 这样就可以了 试了试还不错 没有报错 F4+ALT 右键关闭 按钮关闭 都可以 window.close();刚学会 分享一哈哈!!!...

口袋里的小龙的专栏 1856

调试GMS应用,报错“此设备未获得play保护机制认证”问题解决

不少同学在调试GMS相关应用时,需登录Google账号,有时会弹出如下通知。Google登录界面也会出现如下提示这个报错的原因是设备未通过Google认证,google服务器未配置荣耀设备的型号白名单导致国内网页有一些指导方法在鸿蒙\荣耀的设备上消除这个提示,但本质的问题没有解决,无法登录Google账号。

胡同老道的博客 2万+

JS获取窗口关闭事件(转)

1.用javascript重新定义window.onbeforeunload()事件    在javascript里定义一个函数即可    functionwindow.onbeforeunload(){alert("关闭窗口")}    alert()事件将会在关闭窗口前执行,你也可以用户决定是否关闭窗口    functionwindow.onbeforeunload(){    if(eve...

yelr_j 1113

手把手教你逆向分析某里系bx-ua参数(以225版本为例)

本文详细解析了某里系应用bx-ua参数的逆向工程实战方法,重点拆解其三层加密体系(二进制加密、字符替换和Base64编码)。通过工具链配置和实战案例,帮助开发者掌握逆向分析技巧,适用于合法合规的安全研究和加密技术评估场景。

weixin_33220360的博客 413

STM32F4实战:手把手教你实现USB OTG双模式切换(Host/Slave)

本文详细介绍了如何在STM32F4上实现USB OTG双模式切换(Host/Slave),包括硬件架构解析、软件实现机制、主机模式下的U盘读写以及从机模式下的自定义设备开发。通过实战案例和优化技巧,帮助开发者快速掌握USB双角色功能,提升嵌入式系统开发的灵活性和效率。

u9v0w的博客 730

页面关闭时间触发的事件

var _t; window.onbeforeunload = function() { setTimeout(function(){_t = setTimeout(onunloadcancel, 0)}, 0); return "真的离开?"; } window.onunloadcancel = function() { clearTimeout(_t...

u010985901的专栏 642

ESP32开发环境避坑指南:用Thonny烧录MicroPython固件时常见的5个错误及解决方法

本文针对ESP32开发新手,详细解析了使用Thonny IDE烧录MicroPython固件时最常见的5个错误及其解决方案。内容涵盖驱动安装、端口识别、固件烧录失败、版本兼容性、连接不稳定以及文件系统操作异常等核心痛点,并提供硬件层面的深度排查指南,帮助开发者高效搭建稳定的ESP32开发环境。

weixin_29189003的博客 407

JS - 捕获打印窗口关闭事件

实际上浏览器没有标准化的打印窗口关闭事件,但是根据js单线程这一特性,我们可以在打开打印窗口时同时执行一个异步函数,这样异步函数将被阻塞直到窗口关闭,通用于任何窗口。

XieJay97的博客 1945

一文读懂 SAP ERP / SAP S/4HANA 里的 Price List:概念、配置、定价流程与可运行 ABAP 示例

SAP ERP/S4HANA中的Price List解析 本文系统阐述了SAP定价体系中Price List的核心概念和实现机制。Price List并非独立的价目表,而是通过条件技术(条件类型、访问序列、条件记录)与Price List Type(PLTYP)共同作用的定价维度。文章详细说明了: Price List本质上是客户主数据中的PLTYP字段,作为定价查找键使用 定价流程中条件访问序列如何利用PLTYP查找特定价格 S4HANA与ECC版本在价格维护入口的差异 实际业务中如何通过不同PLTYP实

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 660

【ROS机器人系统】实验4 ROS简单应用:激光SLAM与导航

ROS简单应用:激光SLAM与导航 (1)了解机器人和SLAM之间关系 (2)了解激光SLAM (3)了解gmapping和导航

南京大学软件工程硕士在读 2146

html5 关闭窗口事件,【已解决】js中的createWindow的用法和获取对应的关闭窗口的事件...

【背景】折腾:期间,需要去搞懂:js中的createWindow是如何使用的,语法如何以及关闭窗口时候对应的事件是什么->便于后期加入销毁kindeditor的代码【折腾过程】1.先去搞懂:createWindow(contextId, '修改团购描述', 700, 500, 'view/store/form/goodsdetaileditform.html');的具体含义。搜:js cr...

weixin_34809884的博客 556

每周技巧tc 问题处理技巧Teamcenter

(内部)Dataset和Tool相关之2.1——Tool轮询Contents Type和Type Name-赖良顺.docx。(内部)Dataset和Tool相关之3.2——编写Batch和Perl为客户端自动注册相关内容-赖良顺.docx。(内部)Dataset和Tool相关之1.1——Tools和Datasets参数定义-赖良顺.docx。(内部)Dataset和Tool相关之1.2——相关首选项定义及修改-赖良顺.docx。(内部)Dataset和Tool相关之0——概述-赖良顺.docx。

TC技术专栏 1230

父窗口中得知window.open()出的子窗口关闭事件

父窗口中得知window.open()出的子窗口关闭事件 一种在父窗口中得知window.open()出的子窗口关闭事件的方法 parent.htm : var timer var winOpen function IfWindowClosed() { if (winOpen.closed == true) { document.fm_Inf...

y雨打沙滩点点滴!!! 412

大学计算 - NumPy库的矩阵运算 实训答案

本文介绍了三个NumPy矩阵操作的实验练习。第一关练习ndarray类型操作,包括矩阵构造、元素平方和计算、矩阵乘积运算和逆矩阵行列式计算;第二关针对matrix类型,涉及绝对值最大值获取、特定矩阵乘积运算和转置矩阵特征值计算;第三关实现Moore-Penrose伪逆矩阵计算,并与NumPy内置pinv函数结果比较误差。实验涵盖了NumPy核心矩阵操作,展示了从基础运算到高级矩阵分解的应用,帮助掌握科学计算中的矩阵处理技巧。

2403_89314916的博客 311

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JavaScript——使用按钮创建并关闭新的窗口页面

1. 在html中使用 input 标签创建一个按钮 <input id="input" type="button" value="创建新窗口"> 2. 获取 input 对象 var btn = document.getElementById("input"); 3. 绑定方法 btn.onclick = function () { open(); } 完整代码 <!DOCTYPE html> <html lang="en"> <head>

Melonico的博客 1661

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JavaScript学习笔记04【高级——DOM和事件的简单学习、BOM对象】

JavaScript高级——DOM和事件的简单学习、BOM对象、DOM对象

upward 960

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java焦点事件/键盘事件/窗口事件

Java焦点事件 组件是可以触发焦点事件的.组件可以使用addFocusListener(FocusListener listener)注册焦点事件 创建的监视器必须实现FocusListener接口//改接口有两个方法 public void focusGained(FocusEvent e)//获取焦点 public void focusLost(FocusEvent e)//失去焦点 简...

想带狗熊去吹风 3635

js实现弹出窗口的拖拽功能

弹出窗口的拖拽 拖拽功能运用到的有 onmousedown 事件,onmousemove 事件以及 onmouseup 事件 弹出窗口基本步骤: 1、点击点击弹出窗口按钮弹出窗口; 2、窗口弹出后,鼠标点击标题的时候我们需要获取鼠标所在位置的横纵坐标,然后获取盒子离页面的横纵方向的距离; 3、计算出鼠标相对盒子的距离; 4、当鼠标移动的时候,获取鼠标移动的距离,在用鼠标此刻的位置减去鼠标相对盒子的...

weixin_46390620的博客 1328

python开新窗口的方法_Python爬虫:selenium打开新窗口和多窗口切换 | 猴头客

上说可以通过发送按键事件触发,比如ctrl+T,不过我没成功,使用了js打开新窗口的方式代码示例# -*- coding: utf-8 -*-# @File : switch_tab.py# @Date : 2018-07-27# @Author : Peng Shiyuimport timefrom selenium import webdriverbrowser = webdri...

weixin_39518530的博客 693

javascript中的事件处理

1.常用的事件 1.页面初始化事件 2.按钮点击事件 onclick

djb328217的博客 683

获取浏览器窗口_JavaScriptBOM_打开关闭窗口_单击事件(十九)

目录:1.什么是BOM2.单击事件3.打开和关闭窗口一、什么是BOM1.BOM(Browser Object Model)即浏览器对象模型。BOM提供了独立于内容 而与浏览器窗口进行交互的对象;由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window;BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性;BOM缺乏标准,JavaScript语法的标准化组织是ECMA,D...

weixin_29016315的博客 446

关闭取消 按钮事件

按钮 <button class="layui-btn layui-btn-primary" onclick="fn_Close();" type="button">取消</button> js 事件 /** 设置关闭按钮的click事件处理 */ function fn_Close() { var index = parent.layer.getFrameI...

qq_38923630的博客 911

php页面浮动窗口代码,JavaScript浮动广告窗口实例

浮动广告窗口浮动广告窗口#mydiv{width:100px;height:100px;background:#f00;}#content{text-align:center;}#adv{position:absolute;top:80px;left:60px;}#close{position:absolute;top:80px;left:164px;}var advObj;var advTop;...

weixin_39790738的博客 223

javascript获取TreeView控件选中节点的Text和Value

在实际项目中,遇到一个问题,首先弹出一个新窗口,新窗口中放了一个TreeView控件,TreeView控件的数据绑定在我的上一篇随笔(TreeView绑定XML数据源C#代码示例)中有讲到,现在要解决的是,如何单击TreeView中一个节点,返回Text和Value到父页面并关闭该新窗口。 首先,在后台代码中为TreeView添加属性onclick以支持TreeView的客户端事件,代码如下: ...

weixin_34380296的博客 489
上一篇: Linux 查看端口占用并杀掉
下一篇: smarty模板判断数组为空
spring21st
博客等级 码龄21年 450粉丝 407原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值