项目场景:

需求:用户手动关闭浏览器需要提示,但是代码自动触发的关闭不提示


逻辑实现

mounted() {window.addEventListener('beforeunload', e => this.beforeunloadHandler(e));
},
destroyed() {window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e));
},
methods: {beforeunloadHandler(e) {if (this.$route.name == 'learn_plan_exam' && this.showCloseTip) {e = e || window.event;// 兼容IE8和Firefox 4之前的版本if (e) {e.returnValue = '关闭提示';}// Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+return '关闭提示';} else {window.onbeforeunload = null;}},
}

showCloseTip: 是控制需不需要弹框的值

问题:

测试说:他关闭时 没有任何提示


解决方案:

经过多次验证我发现 代码逻辑并没有问题,出现这个问题的原因是:

1、在IE中这个事件只要去关闭窗口就触发。

2、谷歌、火狐等在F12调试模式中也会起效

3、谷歌、火狐、edge等浏览器中被优化了,需要用户在页面有过任何操作才会出现提示

注意第三点 一定要用户在自己的页面进行过操作,事件才会生效。。。

监听浏览器窗口关闭onbeforeunload不起作用的原因相关推荐

  1. 巨坑!监听浏览器窗口关闭onbeforeunload不起作用(脱坑了啊!!)

    ----------------重要通知-------------- Hello,本人的博客文章已更新至个人网站(www.jonexu.cn) 文章中有问题可以到网站联系博主,后续新的文章也将更新在个 ...

  2. vue 全局监听浏览器窗口关闭以及无痕模式场景提示

    需求场景一:用户退出时清空localStorage并告知后台用户退出,保持登录状态时关闭窗口或者浏览器达到相同目的 实现: // 在mounted中触发beforeunload事件以及在destroy ...

  3. 监听浏览器窗口关闭事件onbeforeunload不起作用

    先贴代码 <body><!-- <script>window.alert("Catalina")</script> --><! ...

  4. [轉]Flash/Flex监听浏览器的关闭事件

    FROM : http://blog.ityao.com/archives/581 如果想用Flash/Flex监听浏览器的关闭事件, 可以通过JavaScript的window.onbeforeun ...

  5. 监听浏览器刷新/关闭页面

    首先,使用onunload或onbeforeunload可以监听浏览器关闭事件,但是无法区分关闭与刷新.以下js代码可以部分监听关闭浏览器的事件! 可以在标签中添加方法: <!DOCTYPE h ...

  6. 【不得不看的几种js监听浏览器返回,关闭,刷新】

    监听浏览器切换页面 //切换页面document.addEventListener('visibilitychange', function () { //浏览器切换事件if (document.vi ...

  7. vue 监听浏览器页面关闭_前方高能,这是最新的一波Vue实战技巧,不用则已,一用惊人...

    ❝ 葡萄美酒夜光杯,欲饮琵琶产品催.客户现场君莫笑,古来埋坑几人回? ❞ 最近一直在开发后台管理系统,日复一日的重复着表单表格表格表单,标准的CV仔,感觉好无聊,如何能在这种无聊的开发过程中去提升自己 ...

  8. 用jQuery监听浏览器窗口的变化

    1 $(window).resize(function () { //当浏览器大小变化时 2 alert($(window).height()); //浏览器时下窗口可视区域高度 3 alert($( ...

  9. linux输入数字切换浏览器tab,js监听浏览器tab窗口切换

    js监听浏览器tab窗口切换 --IT唐伯虎 摘要:js监听浏览器tab窗口切换. if (document.hidden !== undefined) { document.addEventList ...

最新文章

  1. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛 题解(除了C、G之后补)
  2. 基础搭建Hadoop大数据处理-编程
  3. arcgis的python脚本-在ArcGIS中写python脚本读取shapefile
  4. 分享--关于学习的一些事儿
  5. 技术负责人所需的四个核心能力,你具备几个?
  6. SSIS同步多个数据库
  7. iOS7 UIKit Dynamics 的初步研究
  8. Spring整合Struts2框架的第一种方式(Action由Struts2框架来创建)。在我的上一篇博文中介绍的通过web工厂的方式获取servcie的方法因为太麻烦,所以开发的时候不会使用。...
  9. Django(part9)--GET请求
  10. 连续时间系统与离散时间系统的时域分析对比
  11. linux不能更改密码,Linux服务器无法更改密码的解决办法--passwd: User not known
  12. Linux统治超级计算领域的九个理由
  13. 解决IE8不支持数组的indexOf方法
  14. python信息安全书籍_信息安全从业者书单推荐
  15. lib-flexible vue项目(移动端适配)
  16. Webshell和一句话木马
  17. Probabilistic Road Map
  18. 在京东工作是一种什么体验
  19. 计算机存储单位t代表什么意思,存储单位是什么
  20. js 获取当前与一个月前的日期

热门文章

  1. 【kindle笔记】之 《活着》-2018-2-5
  2. 协方差的计算公式及R语言验证
  3. Java高级程序员面试经历
  4. Node express post 大小设置
  5. 小红书如何应对万亿级社交网络关系挑战?图存储系统 REDtao 来了!
  6. 【Unity大气渲染】Unity Shader中实现大气散射(半成品)
  7. No2.大话设计模式学习之策略、装饰、代理模式
  8. 李笑来投资iveryone 到底投资了什么?
  9. 上周技术关注:Google会不会做操作系统?
  10. 星志远电商:拼多多精确匹配溢价多少合适?