关于火狐(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 相关文章推荐
document对象execCommand的command参数介绍
Aug 01 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Sep 13 Javascript
使用JavaScript构建JSON格式字符串实现步骤
Mar 22 Javascript
javascript检测对象中是否存在某个属性判断方法小结
May 19 Javascript
JavaScript中获取鼠标位置相关属性总结
Oct 11 Javascript
jQuery中is()方法用法实例
Jan 06 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
Mar 08 Javascript
解析JavaScript中的字符串类型与字符编码支持
Jun 24 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
Aug 08 Javascript
vue translate peoject实现在线翻译功能【新手必看】
Jun 07 Javascript
Mint UI组件库CheckList使用及踩坑总结
Dec 20 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
May 09 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实现批量查询清除一句话后门的代码
2008/01/20 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
深入理解JavaScript的值传递和引用传递
2018/10/24 Javascript
跟老齐学Python之用Python计算
2014/09/12 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
Sneaker Studio匈牙利:购买运动鞋
2018/03/26 全球购物
PHP面试题附答案
2015/11/28 面试题
工程造价管理专业大专生求职信
2013/10/06 职场文书
怎样写离婚协议书
2015/01/26 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
投诉书格式范本
2015/07/02 职场文书
2016年大学生党员承诺书
2016/03/24 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
Python语言中的数据类型-序列
2022/02/24 Python