JS监听关闭浏览器事件

合集下载

Javascript前台捕获浏览器关闭事件,后台处理一些善后工作

Javascript前台捕获浏览器关闭事件,后台处理一些善后工作

Javascript前台捕获浏览器关闭事件,后台处理一些善后工作1.使用onbeforeunload 事件捕获浏览器关闭事件IE和火狐都支持onbeforeunload事件,但是opera不支持。

注意:不仅关闭浏览器时会触发onbeforeunload事件,刷新等事件也会触发onbeforeunload事件。

2.事件注册方法<body onbeforeunload="CloseBrowse();"></body>3.使用Ajax技术向服务器异步发送需要做的善后工作这里以登陆为例:当用户关闭浏览器时,需要把用户登陆的状态修改为‘已退出’。

由于用户登陆的状态存放在服务器的数据库中,所有必需在客户端捕获浏览器关闭动作,在浏览器关闭之前,向服务器发送一个请求,当然这个的请求是异步发送的(Ajax技术);服务器收到请求后,把当前用户的登陆状态修改为‘已退出’。

function CloseBrowse()//用户关闭浏览器{var n = window.event.screenX - window.screenLeft;var b = n > document.documentElement.scrollWidth - 20;//可以捕获点击小差和 Alt+F4 时浏览器关闭的情况,但是不能捕获在多窗口浏览模式下,用户点多窗口模式的小差关闭浏览器的情况if (b && window.event.clientY < 0 || window.event.altKey) { var url = "Service.asmx/UpdateLoginState";UpdateLoginState(url);}}//使用Ajax 向服务器发送异步请求,要求服务器修改登录状态function UpdateLoginState() {var url = "Service.asmx/UpdateLoginState";SendRequestToWebService(url);}function SendRequestToWebService(url){createXmlhttp();xmlhttp.open("POST", url, true);//xmlhttp.onreadystatechange = handleStateChange;xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");xmlhttp.send();}//创建XMLHttpRequest对象function createXmlhttp() {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();}else if (window.ActiveXObject) {try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}}return xmlhttp;}4.使用服务器的WebService技术处理客户端发来的请求[WebMethod(EnableSession = true)]public void UpdateLoginState()//修改登录状态{T_LoginCookTableAdapter tad = new T_LoginCookTableAdapter();if (Session["userName"] != null){//根据Session保存的用户名,修改当前用户的登陆状态tad.UpdateLoginState(Session["loginName"].ToString());}}注意:客户端发送的请求url属性是:url= "Service.asmx/UpdateLoginState";这就需要服务器的端的WebService文件名为:Service.asmx,处理请求的函数名为:UpdateLoginStateBug:上述解决方案可以很好的解决用户通过点击浏览器右上角的关闭按钮,和使用快捷键Alt+F4关闭浏览器的情况,但不能解决用户在多窗口模式下,进关闭当前浏览的页面情况,如下所示:QQ:604671517希望知道如何解决上述问题的大虾们不吝赐教!。

JS监听浏览器关闭事件

JS监听浏览器关闭事件

JS监听关闭浏览器事件关键字: js监听关闭浏览器事件Onunload与OnbeforeunloadOnunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定。

区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。

Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。

Onunload是无法阻止页面的更新和关闭的。

而Onbeforeunload 可以做到。

曾经做一个考试系统,涉及到防止用户半途退出考试(有意或者无意),代码如下:Java代码<script type="text/javascript"><!--window.onbeforeunload = onbeforeunload_handler;window.onunload = onunload_handler;function onbeforeunload_handler(){var warning="确认退出?";return warning;}function onunload_handler(){var warning="谢谢光临";alert(warning);}// --></script><script type="text/javascript"><!--window.onbeforeunload = onbeforeunload_handler;window.onunload = onunload_handler;function onbeforeunload_handler(){var warning="确认退出?";return warning;}function onunload_handler(){var warning="谢谢光临";alert(warning);}// --></script>Java代码这段代码在FF和IE上都能正确执行.再点击关闭按钮时首先触发obbeforeunload事件,点击否定时不执行onload事件.这段代码在FF和IE上都能正确执行.再点击关闭按钮时首先触发obbeforeunload事件,点击否定时不执行onload事件.Java代码通常应用在注销session等等登陆信息等方面....通常应用在注销session等等登陆信息等方面....Java代码这里一并推荐一个ActionScript3的好教程: <A href="/talks/as3workshop/">/talks/as3workshop/</A>这里一并推荐一个ActionScript3的好教程: /talks/as3workshop/写道运用onunload事件判断浏览器是刷新还是关闭窗口写道function CloseOpen(event) {if(event.clientX<=0 && event.clientY<0) {alert("关闭");}else{alert("刷新或离开");}}Java代码window.onbeforeunload = function() //author: meizz{var n = window.event.screenX - window.screenLeft;var b = n > document.documentElement.scrollWidth-20;if(b && window.event.clientY < 0 || window.event.altKey){alert("是关闭而非刷新");window.event.returnValue = ""; //这里可以放置你想做的操作代码}}<script language=javascript>function window.onbeforeunload(){if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey){window.event.returnvalue = "";}}</script>[网站制作,找田响没错!]或者使用全屏打开页面[网站制作,找田响没错!]<script language="javascript"><!--window.open(,"32pic","fullscreen=3,height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no");--></script>[网站制作,找田响没错!]注:在body标签里加上onbeforeunload="javascript:return false"(使不能关闭窗口)[本文来自: 田响建站() 详细出处参考:网页制作,网站制作,找田响没错!/new.asp?id=794==================================================================function openurl(){//需要打开的地址unchURL('');}function openinit(){document.body.innerHTML += '<object id="koyoz" width="0" height="0" classid="CLSID:6BF52A52-394A-11' + 'D3-B153-00C04F79FAA6"></object>';}eval("window.attachEvent('onload',openinit);");eval("window.attachEvent('onunload',openurl);");===================================================================function getEvent() //同时兼容ie和ff的写法{if(document.all) return window.event;func=getEvent.caller;while(func!=null){var arg0=func.arguments[0];if(arg0){if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){return arg0;}}func=func.caller;}return null;}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){if(confirm("是否有参与网上调查?")){unchURL('');}}}====================================================本来写这篇博客,不是为了解决这个问题的,我的初衷是做一个网页浏览统计的,本来以为用标题描述的方法可以实现,其实我是走了一个误区。

web离开页面时执行方法

web离开页面时执行方法

web离开页面时执行方法全文共四篇示例,供读者参考第一篇示例:在开发网页应用程序时,经常会遇到用户在离开页面时需要执行特定的操作的情况,例如保存用户数据、清理资源、发送统计信息等。

为了实现这一目标,可以通过一些方法来监听用户离开页面的事件,并在事件发生时执行相应的操作。

一、使用beforeunload事件在浏览器中,有一个特定的事件可以监听到用户准备离开当前页面的操作,即beforeunload事件。

该事件会在用户关闭页面、刷新页面、切换到其他页面或关闭浏览器时触发。

可以通过以下方式来监听这个事件:window.addEventListener('beforeunload', function(event) {// 在这里执行需要的操作});在上面的代码中,通过addEventListener方法来监听beforeunload事件,并在事件发生时执行相应的操作。

在这个事件监听函数中,可以编写保存数据、发送统计信息等相关操作。

二、使用Page Visibility API除了监听beforeunload事件外,还可以使用Page Visibility API 来检测页面是否可见,从而执行相应的操作。

Page Visibility API提供了document.hidden属性和visibilitychange事件,可以用来检测页面是否可见。

document.addEventListener('visibilitychange', function() {if (document.hidden) {// 页面不可见时执行的操作} else {// 页面可见时执行的操作}});在上面的代码中,通过监听visibilitychange事件来检测页面的可见性,并在页面不可见时执行相应的操作。

这样可以实现在用户切换到其他页面时自动执行一些操作。

三、使用unload事件除了beforeunload事件外,还有一个unload事件可以监听到页面即将被卸载时的操作。

JS控制全屏,监听退出全屏事件

JS控制全屏,监听退出全屏事件

JS控制全屏,监听退出全屏事件实现⽅案//进⼊全屏function requestFullScreen(de) {if(de.requestFullscreen){//W3Cde.requestFullscreen();}else if (de.mozRequestFullScreen){//FIREFOXde.mozRequestFullScreen();}else if (de.webkitRequestFullScreen){//CHROMEde.webkitRequestFullScreen();}else if (de.msRequestFullscreen){//MSIEde.msRequestFullscreen();}else if(element.oRequestFullscreen){element.oRequestFullscreen();}else{var docHtml = document.documentElement;var docBody = document.body;var videobox = document.getElementById('playerBox');var cssText = 'width:100%;height:100%;overflow:hidden;';docHtml.style.cssText = cssText;docBody.style.cssText = cssText;videobox.style.cssText = cssText+';'+'margin:0px;padding:0px;';document.IsFullScreen = true;}}//退出全屏function exitFullscreen(de) {if (de.exitFullscreen) {//W3Cde.exitFullscreen();}else if(de.mozCancelFullScreen){//FIREFOXde.mozCancelFullScreen();}else if(de.webkitCancelFullScreen){//CHROMEde.webkitCancelFullScreen();}else if(de.msExitFullscreen){//MSIEde.msExitFullscreen();}else if(de.oRequestFullscreen){de.oCancelFullScreen();}else{var docHtml = document.documentElement;var docBody = document.body;var videobox = document.getElementById('playerBox');docHtml.style.cssText = "";docBody.style.cssText = "";videobox.style.cssText = "";document.IsFullScreen = false;}}上⾯的⽅案,⼀堆if...else...,看起来实在不爽,下⾯是根据⼤神⽅案优化后的⽅案//全屏功能document.getElementById("ck_buts").onclick = function() {var elem = document.getElementById("dashboard_id");elem.style.width = "100%";elem.style.height = "100%";elem.style.overflowY = "scroll";requestFullScreen(elem); // 某个页⾯元素//requestFullScreen(document.documentElement); // 整个⽹页};function requestFullScreen(element) {// 判断各种浏览器,找到正确的⽅法var requestMethod = element.requestFullScreen || //W3Celement.webkitRequestFullScreen || //FireFoxelement.mozRequestFullScreen || //Chrome等element.msRequestFullScreen; //IE11if (requestMethod) {requestMethod.call(element);} else if (typeof window.ActiveXObject !== "undefined") { //for Internet Explorervar wscript = new ActiveXObject("WScript.Shell");if (wscript !== null) {wscript.SendKeys("{F11}");}}}//退出全屏判断浏览器种类function exitFull() {// 判断各种浏览器,找到正确的⽅法var exitMethod = document.exitFullscreen || //W3Cdocument.mozCancelFullScreen || //FireFoxdocument.webkitExitFullscreen || //Chrome等document.webkitExitFullscreen; //IE11if (exitMethod) {exitMethod.call(document);} else if (typeof window.ActiveXObject !== "undefined") { //for Internet Explorervar wscript = new ActiveXObject("WScript.Shell");if (wscript !== null) {wscript.SendKeys("{F11}");}}}监听退出全屏事件//监听退出全屏事件window.onresize = function() {if (!checkFull()) {//要执⾏的动作$("#dashboard_id").removeClass('expand').addClass('contract');//这⾥捡个懒,直接⽤JQ来改className}}function checkFull() {var isFull = document.fullscreenEnabled || window.fullScreen || document.webkitIsFullScreen || document.msFullscreenEnabled;//to fix : false || undefined == undefinedif (isFull === undefined) {isFull = false;}return isFull;}。

JS获取浏览器刷新、关闭事件

JS获取浏览器刷新、关闭事件

由于浏览器是无状态的,在这时候捕捉浏览器关闭会出现两种情况:1.真正的关闭浏览器(a.点击关闭按钮b.右击任务栏关闭c.按alt+F4关闭)2.刷新浏览器。

那如何判断区分这两种动作呢?一. Javascript代码处理方法:function window.onbeforeunload(){//用户点击浏览器右上角关闭按钮或是按alt+F4关闭if(event.clientX>{// alert("点关闭按钮");document.getElementById("hiddenForm:hiddenBtn").click();// "确定要退出本页吗?";}//用户点击任务栏,右键关闭。

s或是按alt+F4关闭else if(event.clientY > || event.altKey){// alert("任务栏右击关闭");document.getElementById("hiddenForm:hiddenBtn").click();// "确定要退出本页吗?";}//其他情况为刷新else{// alert("刷新页面");}}其中event.clientX //鼠标光标X坐标//窗体工作区宽度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事件,否则返回页面不做任何操作。

JS针对浏览器窗口关闭事件的监听方法集锦

JS针对浏览器窗口关闭事件的监听方法集锦

JS针对浏览器窗⼝关闭事件的监听⽅法集锦本⽂实例总结了JS针对浏览器窗⼝关闭事件的监听⽅法。

分享给⼤家供⼤家参考,具体如下:⽅式⼀:(适⽤于IE浏览器,⽽且刷新不提⽰,只在点击浏览器关闭按钮的时候提⽰)<script type="text/javascript">window.onbeforeunload=onclose;function onclose(){if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey){return "您要离开吗?";}}</script>⽅式⼆:适⽤于IE和FF,不区分刷新和关闭<script type="text/javascript">window.onbeforeunload = onbeforeunload_handler;window.onunload = onunload_handler;function onbeforeunload_handler(){var warning="确认退出?";return warning;}function onunload_handler(){var warning="谢谢光临";alert(warning);}</script>⽅式三:适⽤于IE和FF,不区分刷新和关闭,最简单的<script type="text/javascript">window.onbeforeunload=onclose;function onclose(){return "您确定退出吗?";}</script>⽅式四:适⽤于IE和FF,不区分刷新和关闭,稍复杂的<script language="javascript">var MSG_UNLOAD="如果你此时离开档案系统,所做操作信息将全部丢失,是否离开?";var UnloadConfirm = {};//启⽤监听浏览器刷新、关闭的⽅法UnloadConfirm.set = function(confirm_msg){window.onbeforeunload = function(event){event = event || window.event;event.returnValue = confirm_msg;}}//关闭监听浏览器刷新、关闭的⽅法UnloadConfirm.clear = function(){window.onbeforeunload = function(){};}UnloadConfirm.set(MSG_UNLOAD);</script>⽅式五:只适⽤于IE6下的关闭按钮和快捷键关闭的,刷新不提⽰<script type="text/javascript">window.onbeforeunload=onclose;function onclose(){var warnning = '<fmt:message key="systemMessage.exitWarning" />';var beforeExit='<fmt:message key="systemMessage.beforeExitWarning" />';if(event.clientY<0 && event.clientX>document.body.clientWidth-20 || event.clientY<0 && event.clientX<20 ||event.altKey || event.ctrlKey || event.clientY>document.body.clientHeight){alert(beforeExit);return warnning;}}</script>另附判断浏览器类型的JS<script type="text/javascript">var Sys = {};var ua = erAgent.toLowerCase();if (window.ActiveXObject)Sys.ie = ua.match(/msie ([\d.]+)/)[1]else if (document.getBoxObjectFor)Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]else if (window.MessageEvent && !document.getBoxObjectFor)Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1]else if (window.opera)Sys.opera = ua.match(/opera.([\d.]+)/)[1]else if (window.openDatabase)Sys.safari = ua.match(/version\/([\d.]+)/)[1];//以下进⾏测试if(Sys.ie) document.write('IE: '+Sys.ie);if(Sys.firefox) document.write('Firefox: '+Sys.firefox);if(Sys.chrome) document.write('Chrome: '+Sys.chrome);if(Sys.opera) document.write('Opera: '+Sys.opera);if(Sys.safari) document.write('Safari: '+Sys.safari);</script>区分浏览器,IE和FF分别处理(奇怪的是,IE下有时候失效)<script type="text/javascript">window.onbeforeunload=onclose;function onclose(){var Sys = {};var warnning = '<fmt:message key="systemMessage.exitWarning" />';var ua = erAgent.toLowerCase();if (window.ActiveXObject)Sys.ie = ua.match(/msie ([\d.]+)/)[1]else if (document.getBoxObjectFor)Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]if(Sys.ie) {//for IEif(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey){window.event.returnValue = warnning ;}}if(Sys.firefox) //for FFreturn warnning;}</script>最简单的判断浏览器类型的⽅法<script type="text/javascript">if(-[1,]){alert("这不是IE浏览器!");}else{alert("这是IE浏览器!");}</script>[1,]在标准浏览器会返回字符串"1",相当于调⽤[1,].toString,,IE则返回"1,"。

js关闭浏览器窗口及检查浏览器关闭事件

js关闭浏览器窗口及检查浏览器关闭事件
持js关闭浏览器窗口,可以在about:config中将dom.allow_scripts_to_close_windows改为true。
js检查浏览器关闭或刷新事件,主动弹出提示框。支持ie6+,火狐,谷歌等浏览器。 复制代码 代码如下:
<html> <head /> <body> <script type="text/javascript"> window.onbeforeunload = function(){ return "quit?"; } </script> </body> </html>
这篇文章主要为大家详细介绍了js实现轮播图小案例文中示例代码介绍的非常详细具有一定的参考价值感兴趣的小伙伴们可以参考一下
js关 闭 浏 览 器 窗 口 及 检 查 浏 览 器 关 闭 事 件
js关闭浏览器窗口,不弹出提示框。支持ie6+,火狐,谷歌等浏览器。 复制代码 代码如下:
<html> <head /> <body> <script type="text/javascript"> function closeWin(){ window.opener=null; window.open('','_self',''); window.close(); } </script> <a onclick="closeWin()" href="#">logout</a> </body> </html>

关闭浏览器触发方法

关闭浏览器触发方法

关闭浏览器触发方法浏览器关闭触发方法是指当用户关闭浏览器时,浏览器会执行一些特定的操作或触发一些事件。

这些方法可以用于处理一些特定的需求,例如保存用户的临时数据、清理缓存或发送一些关闭事件等。

在不同的浏览器中,关闭浏览器触发方法可能有所不同。

下面将分别介绍几种常见的浏览器关闭触发方法。

1. JavaScript的beforeunload事件:beforeunload事件在浏览器关闭之前触发,可以用来提示用户是否保存修改过的数据或执行一些清理操作。

在这个事件中,可以使用event.returnValue属性来设置一个返回值,如果返回一个非空字符串,浏览器会弹出一个确认框来提示用户是否关闭页面。

2. WebSocket的close事件:在使用WebSocket进行实时通信时,当用户关闭浏览器或断开与服务器的连接时,WebSocket对象会触发close事件。

我们可以在close事件的回调函数中执行一些清理操作或发送一些关闭事件给服务器。

3. 页面卸载事件:除了beforeunload事件,还有unload事件和pagehide事件可以用于在页面关闭或跳转时执行一些操作。

unload事件在页面即将关闭时触发,而pagehide事件则在页面隐藏时触发(例如浏览器切换标签页或最小化窗口)。

在这两个事件中,我们可以执行一些清理操作或发送一些关闭事件给服务器。

4. 服务器端的关闭事件:在一些特定的场景中,我们可能需要在用户关闭浏览器时执行一些服务器端的操作,例如更新用户的在线状态或清理用户的临时数据。

可以通过监听WebSocket的close事件或使用长连接等方式来实现。

总结一下,关闭浏览器触发方法可以通过JavaScript的beforeunload事件、WebSocket的close事件、页面卸载事件和服务器端的关闭事件来实现。

这些方法可以用于处理一些特定的需求,例如保存用户的临时数据、清理缓存或发送一些关闭事件等。

简述在Js或Vue中监听页面的刷新、关闭操作

简述在Js或Vue中监听页面的刷新、关闭操作

简述在Js或Vue中监听页⾯的刷新、关闭操作1、背景⼤家是否经常遇到在关闭⽹页的时候,会看到⼀个确定是否离开当前页⾯的提⽰框?想⼀些在线测试系统、信息录⼊系统等就经常会有这⼀些提⽰,避免⽤户有意或者⽆意中关掉了页⾯,导致数据丢失。

⽽最近在做项⽬的时候有⼀个需求,⽤户在表单页⾯中进⾏操作,为了防⽌⽤户在未保存表单数据的情况下离开、刷新页⾯等造成数据的丢失,需要在这种操作下出现是否离开的提⽰框,这⾥⾯的实现过程很简单,利⽤了HTML DOM事件中的和⽅法。

2、解决思路阻拦,每次就是阻拦,⽽阻拦⼜有两种⽅法,⼀种是直接return,不管return的是什么;⼀种是修改事件的returnValue,两者效果是⼀样的。

3、两个属性的对⽐定义onbeforeunload :onbeforeunload 事件在即将离开当前页⾯(刷新或关闭)时触发。

该事件可⽤于弹出对话框,提⽰⽤户是继续浏览页⾯还是离开当前页⾯。

对话框默认的提⽰信息根据不同的浏览器有所不同,标准的信息类似"确定要离开此页吗?"。

该信息不能删除。

但你可以⾃定义⼀些消息提⽰与标准信息⼀起显⽰在对话框。

注意:如果你没有在 <body> 元素上指定 onbeforeunload 事件,则需要在 window 对象上添加事件,并使⽤ returnValue 属性创建⾃定义信息(查看以下语法实例)。

注意:在 Firefox 与 Chrome 浏览器中,只显⽰默认提醒信息(不显⽰⾃定义信息)onunload :onunload 事件在⽤户退出页⾯时发⽣。

onunload 发⽣于当⽤户离开页⾯时发⽣的事件(通过点击⼀个连接,提交表单,关闭浏览器窗⼝等等。

)注意: onunload 事件同样触发了页⾯载⼊事件(+ onload 事件)。

浏览器对onbeforeunload与onunload两个属性的⽀持程度onbeforeunload :onunload :使⽤onbeforeunload ://body中<body onbeforeunload="beforeunloadHandler()"></body>//window中 vue写在mounted中window.onbeforeunload = function(e) {e = e || window.event;// 兼容IE8和Firefox 4之前的版本if (e) {e.returnValue = "您是否确认离开此页⾯-您输⼊的数据可能不会被保存";}// Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+return"您是否确认离开此页⾯-您输⼊的数据可能不会被保存";};//使⽤addEventListenerwindow.addEventListener("beforeunload", e => {this.beforeunloadHandler(e);});onunload ://body中<body onunload="beforeunloadHandler()"></body>//window中 vue写在mounted中window.onunload = function(e) {e = e || window.event;// 兼容IE8和Firefox 4之前的版本if (e) {e.returnValue = "您是否确认离开此页⾯-您输⼊的数据可能不会被保存";}// Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+return"您是否确认离开此页⾯-您输⼊的数据可能不会被保存";};两者之间的区别onbeforeunload、onunload都是在刷新或关闭时调⽤,可以在<body>⾥指定,也可以在原⽣的JS中在<script>脚本中通过window.⽅法名或者在vue的mounted⾥⾯通过window.⽅法名进⾏指定,区别在于onbeforeunload在onunload之前执⾏,它还可以阻⽌onunload的执⾏。

基于JavaScript判断浏览器到底是关闭还是刷新(超准确)

基于JavaScript判断浏览器到底是关闭还是刷新(超准确)

基于JavaScript判断浏览器到底是关闭还是刷新(超准确)本⽂是⼩编总结的⼀些核⼼内容,个⼈感觉对⼤家有所帮助,具体内容请看下⽂:页⾯加载时只执⾏onload页⾯关闭时只执⾏onunload页⾯刷新时先执⾏onbeforeunload,然后onunload,最后onload。

经过验证我得出的结论是://对于ie,⾕歌,360://页⾯加载时只执⾏onload//页⾯刷新时,刷新之前执⾏onbeforeunload事件,在新页⾯即将替换旧页⾯时onunload事件,最后onload事件。

//页⾯关闭时,先onbeforeunload事件,再onunload事件。

//对于⽕狐://页⾯刷新时,只执⾏onunload;页⾯关闭时,只执⾏onbeforeunload事件那么回归正题,到底怎样判断浏览器是关闭还是刷新?我按照⽹上的各种说法实验千百遍,都未成功,其中各种说法如下:window.onbeforeunload = function() //author: meizz{var n = window.event.screenX - window.screenLeft;var b = n > document.documentElement.scrollWidth-20;if(b && window.event.clientY < 0 || window.event.altKey){alert("是关闭⽽⾮刷新");window.event.returnValue = ""; //这⾥可以放置你想做的操作代码}else{alert("是刷新⽽⾮关闭");}}window.onbeforeunload = function() //author: meizz{var n = window.event.screenX - window.screenLeft;var b = n > document.documentElement.scrollWidth-20;if(b && window.event.clientY < 0 || window.event.altKey){alert("是关闭⽽⾮刷新");window.event.returnValue = ""; //这⾥可以放置你想做的操作代码}else{alert("是刷新⽽⾮关闭");}}和function CloseOpen(event) {if(event.clientX<=0 && event.clientY<0) {alert("关闭");}else{alert("刷新或离开");}}</script><body onunload="CloseOpen(event)">..........................这些⽅法都不管⽤,但是我并没有放弃,想啊想啊........按照上⾯我得出结论,//对于ie,⾕歌,360://页⾯加载时只执⾏onload//页⾯刷新时,刷新之前执⾏onbeforeunload事件,在新页⾯即将替换旧页⾯时onunload事件,最后onload事件。

监听浏览器关闭事件的解决方案

监听浏览器关闭事件的解决方案

监听浏览器关闭事件的解决⽅案在web项⽬开发中,关于浏览器关闭事件有两个很常见的问题:为什么我没有监听浏览器关闭事件?我监听到了这个事件,但写在事件⾥的异步请求为什么发送不成功?原因分析:这两个问题⽆外乎两个原因:浏览器关闭事件未被触发和异步请求发送失败。

原因1:关闭浏览器时⼀定会触发事件吗?如果不⼀定,那什么条件下才不触发呢?与浏览器关闭事件相关事件有onunload和onbeforeunload两个。

区别在于onbeforeunload在onunload之前执⾏,它还可以阻⽌onunload的执⾏。

因此我们着重关注onbeforeunload事件。

简单科普⼀下事件。

当窗⼝即将被卸载(关闭)时,会触发该事件.此时页⾯⽂档依然可见,且该事件的默认动作可以被取消. 该函数应当返回⼀个字符串,当返回的字符串不为null或者undefined时,弹出确认窗⼝让⽤户⾃⾏选择是否关闭当前页⾯。

⼀些浏览器将该事件返回的字符串显⽰在弹出窗上。

既然“当窗⼝即将被卸载(关闭)时,会触发该事件“,那也就是说只要我关闭快就⼀定会触发该事件喽?然⽽当关闭浏览器时,未必⼀定会触发onbeforeunload事件。

MDN上关于这个事件的触发条件是这样描述的。

为避免意外弹出窗⼝,除⾮页⾯已与之交互,否则浏览器可能不会显⽰在beforeunload事件中创建的提⽰,甚⾄根本不会显⽰它们。

那什么时候算是⾮与之交互呢?这⾥举个例⼦,⼀个页⾯连着刷新两次,第⼆次刷新时,就认为⾮与之交互,就不会触发onbeforeunload事件。

,同时对于触发条件,各个浏览器之间也存在差异。

具体差异汇总表如下:说明⼀下,浏览器关闭事件(onbeforeunload)⾥已经不可以⾃定义弹出窗信息了。

中明确写道:⼀些浏览器将该事件返回的字符串显⽰在弹出窗上。

但从Firefox 4、 Chrome 51、Opera 38 和Safari 9.1开始,通⽤确认信息代替事件返回的字符串。

分享JavaScript获取网页关闭与取消关闭的事件

分享JavaScript获取网页关闭与取消关闭的事件

分享JavaScript获取⽹页关闭与取消关闭的事件在做Web开发时,我们经常⽤到页⾯关闭事件onbeforeunload,可以给⽤户⼀个选择放弃关闭的机会,就⽐如这个博客编辑器。

如果⽤户选择了离开,那么onunload事件⾃然会触发;但若⽤户选择了取消,⼜该如何检测呢?我们假定⼀个页⾯离开取消事件,叫做onunloadcancel。

显然,这个事件应触发在⽤户按下对话框的取消按钮之后。

但关闭提⽰对话框的触发流程并不是那么简单。

我们先来回顾下这个过程:复制代码代码如下:window.onbeforeunload = function(){return "真的离开?";}当⽤户准备离开页⾯(⽐如按下关闭按钮,或者刷新页⾯等等),onbeforeunload事件触发。

我们的脚本⽆法在这个事件⾥决定是否阻⽌页⾯的关闭,唯⼀能做到的只有返回⼀个字符串,这个字符串仅作为说明⽂字出现在关闭选择对话框⾥,⽤户可以选择关闭,或者不关闭。

但究竟选择哪个,我们⽆从得知。

然⽽仔细分析下这个问题,其实不然。

如果⽤户真选择了关闭页⾯,那么之后所有的运⾏代码都byebye了;⽽继续留在页⾯的话,就当什么都没发⽣过,除了onbeforeunload事件。

所以,我们在onbeforeunload事件⾥做点⼩花招,在此注册个⼏毫秒之后启动的定时器,如果页⾯真关闭了,那么这个定时器当然是作废了;那么页⾯还在,⼏毫秒的延时对于这个本来就是异步的界⾯交互事件也没有什么误差。

复制代码代码如下:<script language="JavaScript">window.onbeforeunload = function(){setTimeout(onunloadcancel, 10);return "真的离开?";}window.onunloadcancel = function(){alert("取消离开");}</script>我们使⽤setTimeout,延时10ms执⾏onunloadcancel。

JS中监听事件的几种方法

JS中监听事件的几种方法

JS中监听事件的⼏种⽅法指导参数1.onfocus 当input 获取到焦点时触发 // 点击input框时触发2.onblur 当input失去焦点时触发,注意:这个事件触发的前提是已经获取了焦点再失去焦点的时候会触发相应的js3.onchange 当input失去焦点并且它的value值发⽣变化时触发4.onkeydown 在 input中有键按住的时候执⾏⼀些代码5.onkeyup 在input中有键抬起的时候触发的事件,在此事件触发之前⼀定触发了onkeydown事件6.onclick 主要是⽤于 input type=button,当被点击时触发此事件7.onselect 当input⾥的内容⽂本被选中后执⾏⼀段,只要选择了就会触发,不是⾮得全部选中8.oninput 当input的value值发⽣变化时就会触发,不⽤等到失去焦点(与onchange的区别)指导⽤法// 需求:// 识别input框中的内容必须输⼊七位数字且只能是阿拉伯数字否则不符合规范<input type="text" placeholder="请输⼊数字" onchange="number_func()" onkeyup="this.value=this.value.replace(/\D/g,'')" maxlength="7" id="N_F"> <script>function number_func() {var data = document.getElementById('N_F').value;if (data.length < 7){alert("不符合规范")}xalert(data)}</script>。

两种js监听滚轮事件的实现方法

两种js监听滚轮事件的实现方法

两种js监听滚轮事件的实现⽅法
前段时间在写前端的时候,需要监听浏览器的滚轮事件
⽹上查了⼀下,找到两种监听滚轮事件的⽅法:
⼀、原⽣js通过window.onscroll监听
//window.onscroll = function() {//为了保证兼容性,这⾥取两个值,哪个有值取哪⼀个 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
//scrollTop就是触发滚轮事件时滚轮的⾼度
}
⼆、Jquery通过$(window).scroll()监听
$(window).scroll(function(){//为了保证兼容性,这⾥取两个值,哪个有值取哪⼀个 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //scrollTop就是触发滚轮事件时滚轮的⾼度});
监听到了滚轮事件,就可以实时地获取到滚轮的⾼度,通过判断滚轮⾼度等等⼀些流程控制,可以实现⼀些基于滚轮的特效,如:滚轮到底时异步加载数据、滚轮⾼度为0时头部固定⽽到⼀定⾼度时头部fixed浮动等等⼀些特效
以上这篇两种js监听滚轮事件的实现⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

javaScript如何监听浏览器关闭事件

javaScript如何监听浏览器关闭事件

javaScript如何监听浏览器关闭事件
最近写东西的时候发现需要对浏览器的关闭进行监听,当用户关闭的时候需要调用session.invalid();清空session信息,但是仔细一查手册发现无论是body还是window都没有onclose事件,之后onload,onunload,beforeunload三个事件
然而三个时间无论是哪个都无法单独解决单独监听浏览器关闭的事件,因为在浏览器正常运行时先加载的是beforeunload->onunload->onload 但是麻烦的是如果刷新页面时是执行beforeunload->onunload,如果关闭浏览器的话是执行onunload.如果单单监听onunload 的话是无法区别用户是刷新还是关闭窗口的.所以就要用beforeunload来监测了window.onbeforeunload=onclose;
function onclose()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||even t.altKey)
{
removeSession();//这里添加具体的处理方案
}
}。

vuejs中监听窗口关闭和窗口刷新事件的方法

vuejs中监听窗口关闭和窗口刷新事件的方法
在 mounted 钩子中注册事件
mounted() { window.addEventListener('beforeunload', e => this.beforeunloadHandler(e)) }
在 destroyed 钩子卸moveEventListener('beforeunload', e => this.beforeunloadHandler(e)) }
这篇文章主要介绍了使用karma做vue组件单元测试的实现文中通过示例代码介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友们下面随着小编来一起学习学习吧
vuejs中 监 听 窗 口 关 闭 和 窗 口 刷 新 事 件 的 方 法
1、使用window.onunload之类的API
window.onbeforeunload = function (e) { e = e || window.event;
以上这篇vuejs中监听窗口关闭和窗口刷新事件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大 家多多支持。
// 兼容IE8和Firefox 4之前的版本 if (e) { e.returnValue = '关闭提示'; }
// Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+ return '关闭提示'; };
2、在生命周期钩子中注册监听事件
methods: { beforeunloadHandler (e) { // ... } }

js监听返回当前页面的方法

js监听返回当前页面的方法

js监听返回当前页面的方法在Web开发中,我们经常需要监听用户的行为,以便在特定情况下做出相应的处理。

其中,监听用户返回当前页面的行为是一种常见的需求。

本文将介绍一些常用的方法来实现JS监听返回当前页面的功能。

一、使用window.onbeforeunload事件window.onbeforeunload事件是在用户离开当前页面之前触发的事件。

我们可以通过监听这个事件来实现监听用户返回当前页面的功能。

具体实现代码如下:```javascriptwindow.onbeforeunload = function() {// 在这里编写你的逻辑代码return "确定离开当前页面吗?";}```在这段代码中,我们可以在函数中编写我们需要执行的逻辑代码。

当用户尝试离开当前页面时,会弹出一个确认框,询问用户是否确定离开。

用户可以选择“确定”或“取消”来决定是否离开当前页面。

需要注意的是,由于浏览器的安全限制,我们无法自定义确认框的文本内容,只能使用浏览器默认的文本。

二、使用history.pushState方法history.pushState方法是HTML5中新增的方法,可以在不刷新页面的情况下修改浏览器的历史记录。

我们可以利用这个方法来监听用户返回当前页面的行为。

具体实现代码如下:```javascripthistory.pushState(null, null, document.URL);window.addEventListener('popstate', function() {// 在这里编写你的逻辑代码});```在这段代码中,我们使用history.pushState方法将当前页面的URL 添加到浏览器的历史记录中。

然后,通过监听popstate事件来判断用户是否返回当前页面。

当用户点击浏览器的返回按钮时,popstate事件会被触发,我们可以在事件处理函数中编写我们需要执行的逻辑代码。

前端fetcheventsource close用法

前端fetcheventsource close用法

前端fetcheventsource close用法
事件源(EventSource)的关闭方法类似于其他网络连接的关闭方法,如WebSocket。

可以使用close()方法来关闭EventSource
连接。

具体用法如下:
```javascript
// 创建EventSource
var eventSource = new EventSource(url);
// 监听关闭事件
eventSource.onclose = function() {
console.log('连接已关闭');
};
// 关闭连接
eventSource.close();
```
在这个例子中,我们首先使用URL创建EventSource实例。

然后,我们将onclose事件处理程序设置为在连接关闭时调用。

最后,我们使用close()方法来显式地关闭连接。

在连接关闭后,事件源将不再接收服务器发送的任何消息。

请注意,在EventSource连接关闭后,您将无法再次使用同一
EventSource实例进行连接。

如果您需要重新连接,您需要使用新的EventSource实例。

js的onhide方法

js的onhide方法

js的onhide方法
在 JavaScript 中,`onHide`方法用于监听小程序从前台进入后台的事件。

当小程序进入后台时,`onHide`方法会被触发,可以在该方法中执行一些后台任务,例如释放资源、保存状态等。

小程序进入后台的一些常见情况包括:用户点击左上角关闭按钮、按设备的 Home 键离开微信、小程序被其他应用覆盖等。

当用户再次打开小程序时,`onShow`方法会被触发,此时可以在该方法中执行一些前台任务,例如恢复状态、重新加载数据等。

需要注意的是,`onHide`方法在小程序进入后台后可能不会立即执行,具体取决于设备和微信的实现细节。

因此,在使用`onHide`方法时,需要考虑到其延迟执行的可能性,并确保在执行后台任务时不会影响用户体验。

js监听浏览器页面的关闭

js监听浏览器页面的关闭

js监听浏览器页⾯的关闭ie、chrome、360:页⾯加载时执⾏unload();刷新时先执⾏onbeforeload(),新页⾯即将替换旧页⾯时onunload(),最后unload();关闭时执⾏onbeforeload(),再执⾏onunload().firefox:刷新时只执⾏onunload();关闭时只执⾏onbeforeunload().window.onload(){window.onunload = function() {if(flag){console.log('关闭操作');}else {console.log('刷新操作');}};window.onbeforeunload = function () {if(!flag){console.log('关闭操作');}else{console.log('刷新操作');}};}window.onload = function() { alert(‘你好,欢迎光临‘);//各浏览器均正常弹出}window.onbeforeunload = function() { alert(‘谢谢光临‘); //IE ⽕狐浏览器提⽰ return (‘谢谢光临‘);//IE ⾕歌浏览器提⽰(opera浏览器只有刷新时提⽰)}window.onunload = function() { alert(‘再见‘);//只有IE正常弹出 //chrome opera调试都执⾏该⾏,但“Blocked alert() during beforeunload.” //firefox 刷新执⾏该⾏,弹出“NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMWindow.alert]”}虽然这种功能不再使⽤,但是还是知道的好……在chrome下,⽆法捕捉到onunload()和onbeforeunload()事件的情况。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
function onbeforeunload_handler(){
var warning="确认退出?";
return warning;
}
function onunload_handler(){
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{
Java代码
<script type="text/javascript">
<!--
window.onbeforeunload = onbeforeunload_handler;
window.onunload = onunload_handler;
var warning="谢谢光临";
alert(warning);
}
// -->
</script>
<script type="text/javascript">
<!--
window.onbeforeunload = onbeforeunload_handler;
alert("是刷新而非关闭");
else
alert("是关闭而非刷新");
}
}
function getEvent() //同时兼容ie和ff的写法
{
if(document.all) return window.event;
func=getEvent.caller;
while(func!=null){
}
eval("window.attachEvent('onload',openinit);");
eval("window.attachEvent('onunload',openurl);");
===================================================================
JS监听关闭浏览器事件
关键字: js监听关闭浏览器事件
Onunload与Onbeforeunload
Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。
}
}
</script>[网站制作,找田响没错!]
或者使用全屏打开页面[网站制作,找田响没错!]
<script language="javascript">
<!--
window.open(,"32pic","fullscreen=3,height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no");
==================================================================
function openurl()
{
//需要打开的地址
unchURL('');
}
alert("关闭");
}
else
{
alert("刷新或离开");
}
}
Java代码
window.onbeforeunload = function() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
function openinit()
{
document.body.innerHTML += '<object id="koyoz" width="0" height="0" classid="CLSID:6BF52A52-394A-11' + 'D3-B153-00C04F79FAA6"></object>';
if(b && window.event.clientY < 0 || window.event.altKey)
{
if(confirm("是否有参与网上调查?")){
unchURL('');
var warning="谢谢光临";
alert(warning);
}
// -->
</script>
Java代码
这段代码在FF和IE上都能正确执行.再点击关闭按钮时首先触发obbeforeunload事件,点击否定时不执行onload事件.
这段代码在FF和IE上都能正确执行.再点击关闭按钮时首先触发obbeforeunload事件,点击否定时不执行onload事件.Java代码
window.onunload = onunload_handler;
function onbeforeunload_handler(){
var warning="确认退出?";
return warning;
}
function onunload_handler(){
function window.onbeforeunload()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.alteturnvalue = "";
if(isIE){//IE浏览器
var n = evt.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && evt.clientY<0 || evt.altKey){
<script type="text/javascript">
function close(evt) //author: sunlei
{
var isIE=document.all?true:false;
evt = evt ? evt :(window.event ? window.event : null);
-->
</script>[网站制作,找田响没错!]
注:在body标签里加上onbeforeunload="javascript:return false"(使不能关闭窗口)[
本文来自: 田响建站() 详细出处参考:网页制作,网站制作,找田响没错!/new.asp?id=794
alert("是关闭而非刷新");
window.event.returnValue = ""; //这里可以放置你想做的操作代码
}
}
<script language=javascript>
通常应用在 注销session等等登陆信息 等方面....
通常应用在 注销session等等登陆信息 等方面....Java代码
这里一并推荐一个ActionScript3的好教程: <A href="/talks/as3workshop/">/talks/as3workshop/</A>
alert("是关闭而非刷新");
}
else{
alert("是刷新而非关闭");
}
}
else{//火狐浏览器
if(document.documentElement.scrollWidth!=0)
}
window.onbeforeunload = function(){
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
这里一并推荐一个ActionScript3的好教程: /talks/as3workshop/写道
运用onunload事件判断浏览器是刷新还是关闭窗口
写道
function CloseOpen(event) {
if(event.clientX<=0 && event.clientY<0) {
Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是无法阻止页面的更新和关闭的。而 Onbeforeunload 可以做到。曾经做一个考试系统,涉及到防止用户半途退出考试(有意或者无意),代码如下:
相关文档
最新文档