页面在关闭前会有onbeforeUnload事件,来询问用户是否要关闭这个页面OR选项卡

浏览器的F5刷新为按下F5----onbeforeUnload----onunload----onload;

浏览器关闭为  onbeforeUnload----onunload;

在window.onbeforeunload的方法体中用alert或则confirm这样的方法在IE中是有效的,会弹出来,点击后页面也会关闭。confirm也是如此,即使你confirm点击了取消还是会刷新/关闭页面。并且在W3C浏览器,chrome,firefox中是不会弹出来的,但是会执行.是浏览器的一个bug或则机制吧,在页面关闭后alert和confirm等弹出框是不会弹出来的。想要一个可以让用户选择的是否关闭的办法,alert和confirm是不可行的

网上查了下资料发现用event.returnValue='你想让用户看到的信息';这样的方法可以在页面被关闭逼前让用户看到提示信息“这个页面要被关闭了,你想关闭还是不关闭?”来让用户进行选择

IE8,CHROME可以让用户完全看到你rerturnValue中的信息,firefox的内容就是浏览器自带的,不管你returnValue设置的显示内容是如何,他始终显示自带的

随后我在测试中发现直接使用return “你想让用户看到的信息”;这样的方式也能和上面使用event.returnValue产生同样的效果。

为什么使用return和event.renturnValue会产生同样的效果,分析,想了想。

一:可能这方法接受return的值,这个参数的值就会直接出现在提示信息中。

二:这个方法的event中的returnValue可以接受一个字符串让其显示在提示信息中。

但是其他的标签,比如A,button中returnValue就只有true和false 两种

假如我们有一个A标签,添加一个onclick事件,我们在return "123" 后面添加alert(“a”);这个A标签点击后是会执行任何默认的方法,即跳转等等。

当我们用return false后任何默认的行为都会不会被执行,后面的代码也不会执行(alert);

当我们用event.returnValue=false(IE或则W3C)或则event.preeventDefault()《W3C》后页面的默认行为如跳转等不会执行,但是下面的alert会执行。

event.returnValue的值只要是false就可以,也就是说event.returnValue=“”这样也可以的。event.returnValue=“haha”这样就是true了。

为什么呢?

returnValue和preeventDefault是阻止事件的默认行为就这个A标签来说,A标签点击的默认行为是跳转。但是其方法体就是onclick的方法中的代码还是会执行完。

而retrun false这样是完完全全阻止了事件的默认行为并且return后面的代码都不会执行。。。

两种方法怎么用,我觉得要分场合。比如就想单纯的阻止事件的默认行为的话就用preeventDefault这种,在方法里面执行代码,走流程并且还要阻止事件的默认行为的话用return false比较好

回到上面的关于onbeforeUnload使用return和returnValue的问题

由于return是直接返回,不执行下面的代码,所以我比较喜欢用returnValue这种方式。。

关于onbeforeunload的一些想法的更多相关文章

  1. 细谈Slick(5)- 学习体会和将来实际应用的一些想法

    通过一段时间的学习和了解以及前面几篇关于Slick的讨论后对Slick这个函数式数据库编程工具有了些具体的了解.回顾我学习Slick的目的,产生了许多想法,觉着应该从实际的工作应用角度把我对Slick ...

  2. 关于纠正 C/C++ 之前在函输内改变 变量的一个错误想法。

    再这之前,我曾认为,一个变量只要定义为全局变量后,即使把它以传参的方式传进去一个函数内,也能改变它的值 事实证明,这一想法是错的. 下面我用代码说明,具体注释将写在里面 #include<std ...

  3. 刷新或关闭时调用onbeforeunload

    Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定.区别在于on ...

  4. 制作QQ空间的一些想法

    新的项目开始了,这一次是做一个网站类似于QQ空间那样的,基本功能比如说写日志,说说之类的都要有(说说是要有楼中楼嵌套的,应该能够上传图片),还要可以修改个人信息.登录注册之类的更不用说了,还要有一定的 ...

  5. 关于小组所要做的APP的想法

    关于小组所要做的app,我们敲定下来是做关于在线做题的app,但是,纯粹的做题目的app我认为并没有什么大的吸引力,尤其是拿手机做题.所以,我们考虑准备在以下几个方面做功夫以增加吸引力.第一,我们的题 ...

  6. 大三CS狗一点想法

    本文非技术文 十点半游戏的代码大概完成了1/3,想到今晚提早验收完汇编实验,还是副院长亲自验的,似乎很看好我的样子,然后问我的方向,导师和参加的项目.聊了几句后结束了对话,不禁又引发了我的一些思考. ...

  7. 浏览器 onbeforeunload 事件 兼容写法

    window.onbeforeunload = onbeforeunload_handler; function onbeforeunload_handler() { var warning = &q ...

  8. 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法

    最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...

  9. 关于移动开发的一些想法和认识--Android和iOS

    微信公众账号很久没更新了,发一点自己最近的想法和内容. 之前和朋友做了一个项目,现在在跟一些风投,大公司里面的几家在谈合作和投资的事宜,从这个过程中也了解到了一些信息. 关于移动平台的应用开发与游戏开 ...

随机推荐

  1. Github上十大C#开源项目排行榜

    1.SignalR ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.当WebSockets可用时(即浏览器支持Ht ...

  2. php示例代码使用mysql_fetch_assoc函数

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  3. WPF学习之路(四)路由

    路由事件概述 功能定义:路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件. 实现定义:路由事件是一个 CLR 事件,可以由RouteEvent 类的实例提供 ...

  4. CentOS 下JDK安装

    第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java versi ...

  5. Mysql字符集知识总结

    字符集&字符编码方式 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,这里的字符可以是英文字符,汉字字符,或者其他国家语言字符. 常见字符集 ...

  6. MYSQL数据回流

         一般的网站应用中,总会有部分二次数据(处理过的原始数据)展现给前台,比如,拿购物网站来说,购买进口奶粉最多的用户群体:哪类产品消费增长趋势最旺盛:用户的消费历史归类等都是二次数据.由于这部分 ...

  7. Activiti之 Exclusive Gateway

    一.Exclusive Gateway Exclusive Gateway(也称为XOR网关或更多技术基于数据的排他网关)经常用做决定流程的流转方向.当流程到达该网关的时候,所有的流出序列流到按照已定 ...

  8. iOS解决隐藏导航栏后,打开照片选择器后导航栏不显示的问题以及更换导航栏背景色

    问题描述: 遇到一种情况,在一个控制器上(隐藏了导航栏),打开照片选择器 UIImagePickerController后,照片选择器头部一片空白,且上滑相册时,信息会有错乱效果. 原因分析: 通过查 ...

  9. su,exit,adduser,deluser,usermod,groups

    exit 退出当前用户 su 切换到指定用户,缺省表示切换到root用户 adduser 创建一个用户的时候其实是创建了一个用户和同名的用户组,它们都会UID,所属的GID,创建时一个用户属于和自己同 ...

  10. netbeans打包成jar

    文件页里找到build.xml文件,打开在</project>前 加入以下代码保存之 按 Ctrl+C 复制代码 <target name="package-for-sto ...