唯品秀前端博客
当前位置: 前端开发 > JavaScript > 离开网页弹窗函数onbeforeunload与onunload

离开网页弹窗函数onbeforeunload与onunload

2017-09-21 分类:JavaScript 作者:管理员 阅读(2653)

onbeforeunload

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

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

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

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

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

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

使用方法:

window.onbeforeunload=function(){ return "你确定要离开吗"; }

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

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

1
2
3
4
5
6
7
8
9
window.onbeforeunload = function() {
    var n = window.event.screenX - window.screenLeft;
    var b = n & gt;
    document.documentElement.scrollWidth - 20;
    if (! (b & amp; & amp; window.event.clientY & lt; 0 || window.event.altKey)) {
        //window.event.returnValue = "真的要刷新页面么?";
        //这里放置我想执行缓存的代码 cacheFunction();
     }
 }

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

浏览器兼容情况

IE、Chrome、Safari 完美支持

Firefox 不支持文字提醒信息

Opera 不支持

onunload

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

使用方法和onbeforeunload类似

window.onunload = function(){ return "你确定要离开吗" }

浏览器兼容情况

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

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

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

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

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

「三年博客,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏

谢谢你请我吃鸡腿*^_^*

支付宝
微信
0

谢谢你请我吃鸡腿*^_^*

支付宝
微信

上一篇:

下一篇:

你可能感兴趣

0 条评论关于"离开网页弹窗函数onbeforeunload与onunload"

博客简介

唯品秀博客: weipxiu.com,一个关注Web前端开发技术、关注用户体验、坚持更多原创实战教程的个人网站,愿景:成为宇宙中最具有代表性的前端博客,期待您的参与,主题源码 

精彩评论

  • 杜老师说(3天前)

    杜老师说到此一游,期待回访!

    评:实现浏览器多个页签之间通信-多种方法
  • 江吟辞(2周前 (06-29))

    好难坚持啊,我还没毕业,不知道啥时候才能像您一样厉害

    评:碎言碎语
  • 和我、恋爱吧(2周前 (06-29))

    怎么没见你更新呢,比较忙吗

    评:碎言碎语
  • 游离(2周前 (06-29))

    站主,你好!请教一下,前台的pc 端和移动端,你是怎么实现响应式的呢?媒体查询的同时写两套样...

    评:碎言碎语
  • 권지용(2周前 (06-29))

    最近在学习前端,看了博主很多文章,收益匪浅,感谢大佬

    评:碎言碎语
  • 白君也(2周前 (06-28))

    哇 自己制作的吗 在哪学的技术啊 好厉害

    评:碎言碎语

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 258 篇
  • 草稿数目: 0 篇
  • 分类数目: 16 个
  • 独立页面: 6 个
  • 评论总数: 914 条
  • 链接总数: 17 个
  • 标签总数: 459 个
  • 注册用户: 8280 人
  • 访问总量: 9231228 次
  • 最近更新: 2020年7月3日
服务热线:
 173xxxx7240

 QQ在线交流

 旺旺在线