关于火狐(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 显示当前日期与时间的代码
Mar 24 Javascript
在多个页面使用同一个HTML片段的代码
Mar 04 Javascript
js列举css中所有图标的实现代码
Jul 04 Javascript
Javascript模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
在jQuery中 常用的选择器介绍
Apr 16 Javascript
禁止选中文字兼容IE、Chrome、FF等
Sep 04 Javascript
js使用setTimeout实现定时炸弹的方法
Apr 10 Javascript
javascript实现label标签跳出循环操作
Mar 06 Javascript
boostrapTable的refresh和refreshOptions区别浅析
Jan 22 Javascript
JS 实现百度搜索功能
Feb 01 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
May 29 Javascript
Jquery让form表单异步提交代码实现
Nov 14 jQuery
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/10/09 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
python基于socket实现网络广播的方法
2015/04/29 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
python让函数不返回结果的方法
2020/06/22 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
2015新年寄语大全
2014/12/08 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python