关于onbeforeunload的一些想法
页面在关闭前会有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的一些想法的更多相关文章
- 细谈Slick(5)- 学习体会和将来实际应用的一些想法
通过一段时间的学习和了解以及前面几篇关于Slick的讨论后对Slick这个函数式数据库编程工具有了些具体的了解.回顾我学习Slick的目的,产生了许多想法,觉着应该从实际的工作应用角度把我对Slick ...
- 关于纠正 C/C++ 之前在函输内改变 变量的一个错误想法。
再这之前,我曾认为,一个变量只要定义为全局变量后,即使把它以传参的方式传进去一个函数内,也能改变它的值 事实证明,这一想法是错的. 下面我用代码说明,具体注释将写在里面 #include<std ...
- 刷新或关闭时调用onbeforeunload
Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定.区别在于on ...
- 制作QQ空间的一些想法
新的项目开始了,这一次是做一个网站类似于QQ空间那样的,基本功能比如说写日志,说说之类的都要有(说说是要有楼中楼嵌套的,应该能够上传图片),还要可以修改个人信息.登录注册之类的更不用说了,还要有一定的 ...
- 关于小组所要做的APP的想法
关于小组所要做的app,我们敲定下来是做关于在线做题的app,但是,纯粹的做题目的app我认为并没有什么大的吸引力,尤其是拿手机做题.所以,我们考虑准备在以下几个方面做功夫以增加吸引力.第一,我们的题 ...
- 大三CS狗一点想法
本文非技术文 十点半游戏的代码大概完成了1/3,想到今晚提早验收完汇编实验,还是副院长亲自验的,似乎很看好我的样子,然后问我的方向,导师和参加的项目.聊了几句后结束了对话,不禁又引发了我的一些思考. ...
- 浏览器 onbeforeunload 事件 兼容写法
window.onbeforeunload = onbeforeunload_handler; function onbeforeunload_handler() { var warning = &q ...
- 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...
- 关于移动开发的一些想法和认识--Android和iOS
微信公众账号很久没更新了,发一点自己最近的想法和内容. 之前和朋友做了一个项目,现在在跟一些风投,大公司里面的几家在谈合作和投资的事宜,从这个过程中也了解到了一些信息. 关于移动平台的应用开发与游戏开 ...
随机推荐
- Java ThreadLocal
ThreadLocal类,代表一个线程局部变量,通过把数据放在ThreadLocal中,可以让每个线程创建一个该变量的副本.也可以看成是线程同步的另一种方式吧,通过为每个线程创建一个变量的线程本地副本 ...
- 如何开启win7端口的图文教程
Windows 7/Vista/XP/2003等系统中的远程终端服务是一项功能非常强大的服务,下面来教教大家如何开启端口:打开“控制面板”中的“Windows防火墙”,点击左侧的“高级设置” 右击“入 ...
- Git详解之三 Git分支
相关文档 — 更多 Git 基础培训.ppt GIT 使用经验.ppt GIT 介绍.pptx GIT 分支管理是一门艺术.docx Eclipse上GIT插件EGIT使用手册.docx git/gi ...
- HDFS 和YARN HA 简介
HDFS: 基础架构 1.NameNode(Master) 1)命名空间管理:命名空间支持对HDFS中的目录.文件和块做类似文件系统的创建.修改.删除.列表文件和目录等基本操作. 2)块存储管理. 使 ...
- Sql Server之旅——第四站 你必须知道的非聚集索引扫描
非聚集索引,这个是大家都非常熟悉的一个东西,有时候我们由于业务原因,sql写的非常复杂,需要join很多张表,然后就泪流满面了...这时候就 有DBA或者资深的开发给你看这个猥琐的sql,通过执行计划 ...
- ORA-01858: 在要求输入数字处找到非数字字符
数据库 date 字段问题 insert into WK_RE_LE (DACL_FILE_ID,DACL_GROUP_ID,BDCDYH,DACL_LENGTH,ISVALID,DACL ...
- JBOSS目录结构详细说明
一.下载与安装. 如何下载以及安装配置,请参考:Windows下JBOSS安装配置图文教程 二.现在主要了解一下JBOSS目录结构. 1. 主目录: E:\jboos\jboss-6.1.0.Fina ...
- nginx日志切割脚本
#!/bin/bash ip=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d ...
- Python 标准异常
异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的 ...
- Ezchip Tilera Tile-Mx100: Der 100-ARM-Netzwerkprozessor
Ezchip Tilera Tile-Mx100: Der 100-ARM-Netzwerkprozessor ARM-Kerne statt VLIW-Einheiten: Tileras neue ...