关于火狐(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 相关文章推荐
js jquery做的图片连续滚动代码
Jan 06 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
Jul 15 Javascript
使用javascript获取页面名称
Dec 23 Javascript
js实现两点之间画线的方法
May 12 Javascript
动态加载jQuery的方法
Jun 16 Javascript
谈谈javascript中使用连等赋值操作带来的问题
Nov 26 Javascript
JS读写CSS样式的方法汇总
Aug 16 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
Nov 28 Javascript
Bootstrap导航条学习使用(一)
Feb 08 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
Jul 10 Javascript
vue-cli4项目开启eslint保存时自动格式问题
Jul 13 Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 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中设置时区方法小结
2012/06/03 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
jQuery中:animated选择器用法实例
2014/12/29 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
python thread 并发且顺序运行示例
2009/04/09 Python
Python中的异常处理学习笔记
2015/01/28 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
DJI全球:DJI Global
2021/03/15 全球购物
C有"按引用传递"吗
2016/09/06 面试题
大学生通用个人自我评价
2014/04/27 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
2014年文员工作总结
2014/11/18 职场文书
领导欢迎词致辞
2015/01/23 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
离婚协议书范文2016
2016/03/18 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js