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 相关文章推荐
js 解决“options为空或不是对象”
Dec 22 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
Apr 02 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
Nov 19 Javascript
JS+CSS实现DIV层的展开、收缩效果
Jan 28 Javascript
JS三级可折叠菜单实现方法
Feb 29 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
Jul 21 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
Feb 28 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
Node.js实现简单管理系统
Sep 23 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
Nov 26 jQuery
如何在JS文件中获取Vue组件
Sep 16 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页面消耗内存过大的处理办法
2013/03/18 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
jquery form表单提交插件asp.net后台中文解码
2010/06/12 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
使用Python获取Linux系统的各种信息
2014/07/10 Python
python脚本内运行linux命令的方法
2015/07/02 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
医院护理人员的自我评价分享
2013/10/04 职场文书
幼师自荐信范文
2013/10/06 职场文书
外企办公室竞聘演讲稿
2013/12/29 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
英语系毕业生求职信
2014/07/13 职场文书
基层党员对照检查材料
2014/08/25 职场文书
学校四风对照检查材料
2014/08/28 职场文书
党员查摆问题及整改措施
2014/10/10 职场文书
机关作风建设心得体会
2014/10/22 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL