简介

onunload,onbeforeunload都是在刷新或关闭时调用,可以在

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

onunload事件

onunload 事件在用户退出页面时发生。

onunload 发生于当用户离开页面时发生的事件(通过点击一个连接,提交表单,关闭浏览器窗口等等。)

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

语法

直接使用在html中:

注:以下 HTML 标签支持 onunload :

,

JavaScript 中:

window.οnunlοad=function(){SomeJavaScriptCode};

例子:

//JS document

window.onunload = function(){

alert("unload is work");

}

浏览器兼容情况

IE浏览器页面跳转、刷新页面能执行,但关闭浏览器不能执行;

firefox 页面跳转能执行,但刷新页面、关闭浏览器不能执行;

Safari 刷新页面、页面跳转,关闭浏览器都会执行;

Opera、Chrome任何情况都不执行。

如图所示:

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

onbeforeunload事件

onbeforeunload 事件在即将离开当前页面(刷新或关闭)时触发。

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

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

但你可以自定义一些消息提示与标准信息一起显示在对话框。

注意: 如果你没有在

元素上指定 onbeforeunload 事件,则需要在 window 对象上添加事件,并使用 returnValue 属性创建自定义信息(查看以下语法实例)。

语法

html中使用:

JavaScript 中:

object.οnbefοreunlοad=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= "我在这写点东西...";

};

值得注意的是,网上流传说 可以通过检查 e.clientX e.clientY 判断 用户是否点击 右上角关闭浏览器的,但是实践发现 只有 IE6,IE7,IE8 能获取得到具体数值,其他浏览器均为 undefined。

浏览器兼容情况

IE、Safari 完美支持

Firefox、Chrome 不支持文字提醒信息

Opera 不支持

如图所示:

IE6,IE7 使用 onbeforeunload 遇到的bug

凡是 标签 都会触发 onbeforeunload事件 包括 href=”javascript:void(0)” 这种。

在IE6,IE7 下面 点击 里面的 a 标签,蛋疼的事情就发生了。

解决方法:给这 a标签的 父级 添加 οnclick=function(){return false} 即可,不过添加了这个之后 要确保 父级里面没有 input type=”checkbox” 的标签,否则会导致其无效不可点击。

js中unload什么意思_JS之onunload、onbeforeunload事件详解相关推荐

  1. js中几种实用的跨域方法原理详解

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  2. js 乱码 反斜杠_js 转义字符及URI编码详解

    URL中的转义字符 当URL的参数中出现诸如+,空格,/,?,%,#,&,=等特殊字符串符号时,因为上述字符有特殊含义,导致服务器端无法正确解析参数,如何处理?解决办法:将这些字符转化成服务器 ...

  3. html5 关闭窗口事件,web窗口关闭事件之onunload、onbeforeunload事件详解

    最近用到一个问题,当修改一篇内容时需要把此内容锁定,提交修改后解除锁定.那么问题出现了,当用户点了修改但未提交直接关掉窗口,那么此条信息一直处理锁定状态导致其他人员没办法修改. 在这里用到的是 onb ...

  4. onunload、onbeforeunload事件详解

    最近项目中做到一个功能:在上传页面用户开始上传文件之后用户点击任意跳转都需要弹出提示层进行二次确定才允许他进行跳转,这样做的目的是为了防止用户的错误操作导致这珍贵的UGC 流失(通常用户在一次上传不成 ...

  5. onunload、onbeforeunload事件详解--zhuan

    最近项目中做到一个功能:在上传页面用户开始上传文件之后用户点击任意跳转都需要弹出提示层进行二次确定才允许他进行跳转,这样做的目的是为了防止用户的错误操作导致这珍贵的UGC 流失(通常用户在一次上传不成 ...

  6. 用户关闭页面前提示,提醒保存内容 Window 的 unload onunload onbeforeunload 事件

    用户关闭页面前提示,提醒保存内容 Window 的 unload onunload onbeforeunload 事件 在线测试例子: http://kylebing.cn/test/unload-e ...

  7. python反向缩进_在Pycharm中对代码进行注释和缩进的方法详解

    在Pycharm中对代码进行注释和缩进的方法详解 一.注释 1. #单行注释 2. """ 多行注释 """ 3. pycharm多行注释快 ...

  8. Java中JSON字符串与java对象的互换实例详解

    这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...

  9. html5 游戏 算法,JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】...

    JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解[圆形情况] 发布时间:2020-10-10 13:42:43 来源:脚本之家 阅读:95 作者:krapnik 本文实例讲述了JS/HTML ...

最新文章

  1. 单目摄像头标定与测距
  2. call of overloaded 'round(float)' is ambiguous
  3. 高级软件工程第五次作业:东理三剑客团队作业-2
  4. Qt中的模型视图设计模式
  5. Object category automatic search
  6. jdk10 换成jdk8_JDK 10的摘要Javadoc标签
  7. React开发(155):请求方式得问题
  8. python flask高级编程之restful_flask-restful使用总结
  9. 收藏 | 深度学习调试经验
  10. 《图解HTTP》-读
  11. and5.1PowerManagerService深入分析(四)PMS与Display模块
  12. Deepin系统配置开机自启动
  13. GPIO接口-引脚对照
  14. MySQL用户IP授权
  15. 根据指定月份,打印该月份所属的季节3,4,5 春季 6,7,8 夏季 9,10,11 秋季
  16. Nginx下配置Https,测试环境的完整过程
  17. 向量运算 与 JavaScript
  18. css-filter属性-融合效果-1.1
  19. npm run dev 报错no-octal-escape.js:41
  20. HTML-浮动与清除浮动

热门文章

  1. RxJava基本概念
  2. 梅特勒.托利多-称重上位机软件
  3. Mac系统随笔 | (3) Macbook 如何打开.rar文件
  4. 洛谷 P2341 【HAOI2006】受欢迎的牛
  5. uipath字符串操作
  6. 基于R的Bilibili视频数据建模及分析——预处理篇
  7. 如何做出微软风格的 PPT?
  8. C/C++ 复制数组【简单易懂,代码可以直接运行】
  9. 共享单车接入百度地图,科技进步为“国民素质”背书
  10. 华罗庚超级计算机,海南省三亚一中2018届”华罗庚杯“数学竞赛七年级决赛试题...