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 相关文章推荐
javascript Array.sort() 跨浏览器下需要考虑的问题
Dec 07 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
Aug 24 Javascript
JS应用正则表达式转换大小写示例
Sep 18 Javascript
javascript实现简单的分页特效
Aug 12 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
Dec 04 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
Oct 13 Javascript
关于RequireJS的简单介绍即使用方法
Oct 20 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
Nov 25 Javascript
将鼠标焦点定位到文本框最后(代码分享)
Jan 11 Javascript
JS中call和apply函数用法实例分析
Jun 20 Javascript
vue导出html、word和pdf的实现代码
Jul 31 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
Apr 25 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
3
2006/10/09 PHP
PHP日期时间函数的高级应用技巧
2009/05/16 PHP
php记录日志的实现代码
2011/08/08 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
PHP安全下载文件的方法
2016/04/07 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
2017/11/24 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
详解python中init方法和随机数方法
2019/03/13 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
软件项目实施计划书
2014/05/02 职场文书
市场营销战略计划书
2014/05/06 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
团结主题班会
2015/08/13 职场文书