位置: 编程技术 - 正文

浅谈javascript中onbeforeunload与onunload事件(js中onunload)

编辑:rootadmin

推荐整理分享浅谈javascript中onbeforeunload与onunload事件(js中onunload),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js的onchange方法如何触发,javascript none,js中onchange啥意思,js中的onchange,js的onchange方法如何触发,js中的onload什么意思,js的onchange方法如何触发,javascript none,内容如对您有帮助,希望把文章链接给更多的朋友!

在最近的项目中,需要做到一个时间,就是用户离开页面的时候,我需要缓存页面其中一部分的内容,但是我不需要用户刷新的时候也缓存,我只希望在我用户离开的时候

执行这个函数。百度之,有onbeforeunload与onunload这两个事件,但是onbeforeunload在用户刷新的时候也会执行。搞得我弄的挺久的,所以想在这里做一个小小的总结

onbeforeunload与onunload事件

onbeforeunload定义和用法

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

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

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

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

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

注意: 在 Firefox 浏览器中,只显示默认提醒信息(不显示自定义信息)。

使用方法:

或者:

事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。当然你可以自定义提示文本。

那么,当我只需要在我离开时执行这个函数,而刷新的时候不执行,那怎么做呢?

 这样,我离开页面时,可以执行我的缓存代码,而不弹出提示框,我刷新时也不弹出提示框,也不执行。值得一提的时,这个时候,要将ajax设置为同步,即:ajax里面的 async改为: false;

浅谈javascript中onbeforeunload与onunload事件(js中onunload)

浏览器兼容情况

IE、Chrome、Safari 完美支持

Firefox 不支持文字提醒信息

Opera 不支持

IE6,IE7 使用 onbeforeunload 遇到的bug

2、onunload定义和用法

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

使用方法和onbeforeunload类似

浏览器兼容情况

IE6,IE7,IE8 中 刷新页面、关闭浏览器之后、页面跳转之后都会执行;

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

firefox(包括firefox3.6) 关闭标签之后、页面跳转之后、刷新页面之后能执行,但关闭浏览器不能执行;

Safari 刷新页面、页面跳转之后会执行,但关闭浏览器不能执行;

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

总结

Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。   Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是无法阻止页面的更新和关闭的。而 Onbeforeunload 可以做到。

页面加载时只执行onload 页面关闭时先执行onbeforeunload,最后onunload 页面刷新时先执行onbeforeunload,然后onunload,最后onload。

javascript中new关键字详解 和其他高级语言一样javascript中也有new关键字,我们以前认知的new是用来创建一个类的实例对象,但在js中万物皆是对象,为何还要new关键字呢,其实js中

javascript中的3种继承实现方法 使用Object.create实现类式继承下面是官网的一个例子//Shape-superclassfunctionShape(){this.x=0;this.y=0;}Shape.prototype.move=function(x,y){this.x+=x;this.y+=y;console.info("Shapemoved.

JavaScript中的this,call,apply使用及区别详解 学习起因:在之前的JavaScript学习中,this,call,apply总是让我感到迷惑,但是他们的运用又非常的广泛。遂专门花了一天,来弄懂JavaScript的this,call,apply。中

标签: js中onunload

本文链接地址:https://www.jiuchutong.com/biancheng/369960.html 转载请保留说明!

上一篇:JavaScript的代码编写格式规范指南(javascript的代码写在哪里)

下一篇:javascript中new关键字详解(js new option)

  • 税后经营净利润怎么求
  • 利润总额亏损还有没有所得税
  • 中外合资企业要交什么税
  • 经营所得个税计算案例
  • 免税是什么税
  • 劳保用品发放制度文件
  • 预缴的附加税月末结转吗
  • 商贸企业加工费包括哪些
  • 中小企业存货内部控制存在的问题以公司为例
  • 企业资产损失所得税税前扣除办法
  • 机器配件作价卖掉,如何做进项税转出
  • 存货计提跌价准备什么意思
  • 加油站冲值加油怎么操作
  • 公司从个人手中租房不能取得发票
  • 付汇代扣代缴增值税纳税期限
  • 开发商土地使用税如何计算
  • 纸巾可以开专票吗
  • 利润负数所得税怎么算
  • linux安装常用命令
  • 暗格里的秘密电视剧彩蛋百度网盘
  • 常见内存大小
  • 电子发票如何作废冲红
  • 房产税具体税种包括哪些
  • 有留抵税额怎么做分录
  • 委托加工物资加工费
  • 其他应付款转营业外收入摘要
  • php中session使用
  • 税控盘每年的服务费可以抵扣吗
  • 编制合并报表的母子公司是什么主体
  • phpcgi远程代码执行漏洞
  • 增值税申报时,里面没有数据怎么办
  • 对公账户转入对私账户
  • 小规模纳税人税额怎么算
  • php单态模式简单解释
  • 电子税务局附加税退税在哪看
  • 利润表本年累计数公式
  • 应收债款的融资属于
  • 残疾基金出什么科目
  • 利润表增加利润怎么做
  • 发工资时代扣房贷怎么办
  • 织梦cms为什么不维护了
  • 差旅费抵扣进项税额
  • 社保公司承担部分怎么做账
  • 企业转让股权如何缴纳企业所得税
  • 税务实名认证是法人还是办税人
  • 收到政府扶贫款如何做分录
  • 房产税从租和从价都要交吗
  • 进项税额转出是借方科目还是贷方科目
  • 拆迁补偿款收税吗
  • 上年未结转的成本今年可以结转吗
  • 受托加工的成本
  • 研发费用加计扣除的条件
  • 微信收款如何做账报税
  • 对公账户进出账常识
  • 个人账户打流水需要本人吗
  • 为什么规定视同销售?
  • wp8.1怎么升级wp10
  • win10控制面板中没有防火墙
  • macbook程序在哪
  • 关闭win7屏保
  • WinXp x64sp企业订户最新完整纯净版安装指南
  • 苹果mac最新的系统
  • 防止linux断电系统崩溃
  • win7系统通知在哪
  • cocos2dx scrollview
  • js下拉加载
  • 跳跳僵尸小游戏攻略
  • js操作dom节点的方法
  • javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
  • shell执行多个命令
  • node搭建项目
  • javascript+
  • typeto
  • 青春逐梦税务蓝
  • 宁波国家税务局电子税务局
  • 宁夏地税领导班子名单
  • 陕西省税务发票查询系统
  • 云南国税局官网网站
  • 湖南省税局
  • 财政法和经济法的关系
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设