return false,对阻止事件默认动作的一些测试代码


Posted in Javascript onNovember 17, 2010

首先页面上有一个 <textarea id="test"></textarea>
我们为其绑定以下事件

test.onkeydown = function(){ 
return false; 
} test.onkeyup = function(){ 
return false; 
} 
test.onkeypress = function(){ 
return false; 
}

我们分别注释掉其中的两个事件,每次测试仅绑定一个事件。
很明显我们每个函数都返回false,如果返回值可以阻止事件默认动作,那么文本框将无法输入任何内容。
看下面我测试的结果,注意红的部分。
最后我分别把事件绑定两次,每次返回false看是否能阻止默认动作。
还是用了一个a标记测试onclick 返回false 是否跳转。
侦听事件返回 false 是否阻止事件默认动作
  chrome IE-8 firfox oper Safari
onkeydown yes yes yes no yes
onkeyup no no no no no
onkeypress yes yes yes yes yes
onclick yes yes yes yes yes
keydown * 2 no 取最后的FN结果 no no no
keypress * 2 no 取最后的FN结果 no no no
click * 2 no 取最后的FN结果 no no no
e.preventDefault(); yes no yes yes(keydown:no) yes
e.returnValue = false no yes no no no

可以看出浏览器表现确实不太一样,当然IE是最麻烦的东西了。
最意外的是在oper中 绑定down 返回false,居然也不能阻止默认动作。
所以以后在写要阻止浏览器默认动作的时候,还用标准的方法比较好。(后面我提供了)
不然在多人协作的工作中,会相当麻烦。
演示的deom 有需要的可以发邮件给我。我就不贴上来了。
/* * 用下面的代码就不会发生悲剧了 
* 最终结论 
* E(e).stop(); 阻止时间冒泡 
* E(e).prevent();阻止时间默认行为 
*/ 
var E = function(e){ 
e = window.event || e; 
return { 
stop: function() { 
if (e && e.stopPropagation) e.stopPropagation(); 
else e.cancelBubble = true 
}, 
prevent: function() { 
if (e && e.preventDefault) e.preventDefault(); 
else e.returnValue = false 
} 
} 
}
Javascript 相关文章推荐
农历与西历对照
Sep 06 Javascript
ExtJS GridPanel 根据条件改变字体颜色
Mar 08 Javascript
javascript中的变量是传值还是传址的?
Apr 19 Javascript
jquery弹出层类代码分享
Dec 27 Javascript
使用jquery prev()方法找到同级的前一个元素
Jul 11 Javascript
jQuery实现选项联动轮播效果【附实例】
Apr 19 Javascript
js仿搜狐视频记录片列表展示效果
May 30 Javascript
树结构之JavaScript
Jan 24 Javascript
React中ES5与ES6写法的区别总结
Apr 21 Javascript
ES6中Math对象新增的方法实例详解
Apr 25 Javascript
jquery实现淡入淡出轮播图效果
Dec 13 jQuery
详解Vite的新体验
Feb 22 Javascript
javascript利用初始化数据装配模版的实现代码
Nov 17 #Javascript
javascript拓展DOM操作 prependChild insertAfert
Nov 17 #Javascript
Javascript 静态页面实现随机显示广告的办法
Nov 17 #Javascript
Json对象替换字符串占位符实现代码
Nov 17 #Javascript
xml文档转换工具,附图表例子(hta)
Nov 17 #Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
Nov 17 #Javascript
基于jQuery的图片大小自动适应实现代码
Nov 17 #Javascript
You might like
PHP 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
php生成无限栏目树
2017/03/16 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
2016/05/05 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
2018/12/17 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
django文档学习之applications使用详解
2018/01/29 Python
pandas中去除指定字符的实例
2018/05/18 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
Django中提示消息messages的设置方式
2019/11/15 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
幼儿园门卫岗位职责
2014/02/14 职场文书
销售团队口号大全
2014/06/06 职场文书
质量负责人任命书
2014/06/06 职场文书
企业趣味活动方案
2014/08/21 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
环境卫生整治简报
2015/07/20 职场文书
酒店厨房管理制度
2015/08/06 职场文书
护理心得体会范文
2016/01/22 职场文书
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
python 单机五子棋对战游戏
2022/04/28 Python