关于火狐(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 相关文章推荐
jquery和javascript的区别(常用方法比较)
Jul 04 Javascript
跨域传值即主页面与iframe之间互相传值
Dec 09 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
Dec 26 Javascript
原生js和jQuery实现淡入淡出轮播效果
Dec 25 Javascript
vue从使用到源码实现教程详解
Sep 19 Javascript
vuex实现简易计数器
Oct 27 Javascript
Vue DevTools调试工具的使用
Dec 05 Javascript
JavaScript中的一些隐式转换和总结(推荐)
Dec 22 Javascript
在vue项目中使用md5加密的方法
Sep 14 Javascript
js实现微信聊天界面
Aug 09 Javascript
JavaScript 语句之常用 for 循环详解
Mar 29 Javascript
JavaScript中关于预编译、作用域链和闭包的理解
Mar 31 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
一个PHP日历程序
2006/12/06 PHP
php可生成缩略图的文件上传类实例
2014/12/17 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
vue使用监听实现全选反选功能
2018/07/06 Javascript
Python GAE、Django导出Excel的方法
2008/11/24 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
软件工程师面试题
2012/06/25 面试题
介绍一下JNDI的基本概念
2013/07/26 面试题
2013年高中生自我评价
2013/10/23 职场文书
财务科科长岗位职责
2014/03/10 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
pandas中对文本类型数据的处理小结
2021/11/01 Python