关于火狐(firefox)及ie下event获取的两种方法


Posted in Javascript onDecember 27, 2012

经常有同事问我在火狐浏览器怎么获取event的方法,大多是想获取event.keyCode的功能两种方法
第一种方法

function a(e){ 
e=e||window.event; 
alert(e.keyCode); 
}

ie浏览器如下调用
<body onclick="a()">

firefox火狐浏览器如下调用
<body onclick="a(event)">

这样就可以调用成功
这种方法在firefox需要带个参数过去,不是太好,下面介绍第二种方法
第二种方法
function a(){ 
e=arguments.callee.caller.arguments[0] || window.event; 
alert(e.keyCode); 
}

ie和firefox下都如下调用
<body onclick="a()">

这里要解释一下arguments.callee.caller.arguments[0],
简单例子如下:
function a(){ 
b(); 
} 
function b(){ 
alert(b === arguments.callee) 
alert(b.caller === a) 
alert(arguments.callee.caller === a) 
} 
a();

上面的这个例子将输出3个true,表明当a()调用时,函数b与函数a的关系。
arguments.callee指的就是当前的函数体
arguments.callee.caller就是当前函数的上级函数
所以当执行onclick="a()"时arguments.callee就是a(),arguments.callee.caller就是function onclick
onclick的第一个能数就是event,也就是arguments.callee.caller.arguments[0]这个。
Javascript 相关文章推荐
类似CSDN图片切换效果脚本
Sep 17 Javascript
用jQuery获取IE9下拉框默认值问题探讨
Jul 22 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
Jun 20 Javascript
深入理解Angular中的依赖注入
Jun 26 Javascript
浅谈Vue路由快照实现思路及其问题
Jun 07 Javascript
js拖动滑块和点击水波纹效果实例代码
Oct 16 Javascript
详解vue项目中调用百度地图API使用方法
Apr 25 Javascript
一看就会的vuex实现登录验证(附案例)
Jan 09 Javascript
在Vue中使用antv的示例代码
Jun 29 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
Jan 28 Javascript
CocosCreator如何实现划过的位置显示纹理
Apr 14 Javascript
Javascript图像处理—为矩阵添加常用方法
Dec 27 #Javascript
ie支持function.bind()方法实现代码
Dec 27 #Javascript
前后台交互过程中json格式如何解析以及如何生成
Dec 26 #Javascript
多个js与css文件的合并方法详细说明
Dec 26 #Javascript
JS打开图片另存为对话框实现代码
Dec 26 #Javascript
window.addEventListener来解决让一个js事件执行多个函数
Dec 26 #Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
Dec 26 #Javascript
You might like
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
zend framework多模块多布局配置
2011/02/26 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
新手简单了解vue
2019/05/29 Javascript
[46:27]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第一局
2016/03/02 DOTA
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
Python内置函数locals和globals对比
2020/04/28 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
Internet体系结构
2014/12/21 面试题
四年大学生活的个人自我评价
2013/12/11 职场文书
季度思想汇报
2014/01/01 职场文书
2014年村委会工作总结
2014/11/24 职场文书
电台广播稿范文
2015/08/19 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python