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 相关文章推荐
ie 调试javascript的工具
Apr 29 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
Sep 02 Javascript
javasctipt如何显示几分钟前、几天前等
Apr 30 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
Mar 14 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
Apr 06 Javascript
Bootstrap三种表单布局的使用方法
Jun 21 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
Dec 14 Javascript
jQuery Validate让普通按钮触发表单验证的方法
Dec 15 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
微信小程序movable view移动图片和双指缩放实例代码
Aug 08 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
Dec 04 Javascript
Vue接口封装的完整步骤记录
May 14 Vue.js
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获取客户端电脑屏幕参数的方法
2015/01/09 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
JS 强制设为首页的代码
2009/01/31 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python统计单词出现的次数
2018/04/04 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
如何基于python实现不邻接植花
2020/05/01 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
毕业学生推荐信
2013/12/01 职场文书
英语故事演讲稿
2014/04/29 职场文书
房屋转让协议书
2014/10/18 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
实习报告怎么写
2019/06/20 职场文书
react如何快速设置文件路径别名
2021/04/28 Javascript