关于火狐(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 相关文章推荐
javascript 自动转到命名锚记
Jan 10 Javascript
jquery 上下滚动广告
Jun 17 Javascript
js 页面传参数时 参数值含特殊字符的问题
Dec 13 Javascript
Jquery 数组操作大全个人总结
Nov 13 Javascript
JS实现页面超时后自动跳转到登陆页面
Jan 19 Javascript
jQuery如何获取动态添加的元素
Jun 24 Javascript
Bootstrap3 Grid system原理及应用详解
Sep 30 Javascript
利用Vue.js实现checkbox的全选反选效果
Jan 18 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
JavaScript图片处理与合成总结
Mar 04 Javascript
vue-router权限控制(简单方式)
Oct 29 Javascript
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
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
thinkPHP框架对接支付宝即时到账接口回调操作示例
2016/11/14 PHP
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
DeviceOne 让你一见钟情的App快速开发平台
2016/02/17 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
深入理解JavaScript的值传递和引用传递
2018/10/24 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
vue中activated的用法
2021/01/03 Vue.js
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
Python Tkinter简单布局实例教程
2014/09/03 Python
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
在Python的Flask框架下使用sqlalchemy库的简单教程
2015/04/09 Python
深入理解Python装饰器
2016/07/27 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
对Python中内置异常层次结构详解
2018/10/18 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
车辆安全检查制度
2014/01/12 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
计算机教师工作总结
2015/08/13 职场文书
goland 清除所有的默认设置操作
2021/04/28 Golang