关于火狐(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关于页面焦点的定位(文本框获取焦点时改变样式 )
Sep 10 Javascript
js jquery数组介绍
Jul 15 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
分享一则JavaScript滚动条插件源码
Mar 03 Javascript
Bootstrap每天必学之栅格系统(布局)
Nov 25 Javascript
原生Javascript插件开发实践
Jan 18 Javascript
vue-cli + sass 的正确打开方式图文详解
Oct 27 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
Jan 31 Javascript
微信小程序开发注意指南和优化实践(小结)
Jun 21 Javascript
JS自定义滚动条效果
Mar 13 Javascript
react+antd 递归实现树状目录操作
Nov 02 Javascript
如何管理Vue中的缓存页面
Feb 06 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
PHP类中Static方法效率测试代码
2010/10/17 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
PHP 读取和编写 XML
2014/11/19 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
PHP 断点续传实例详解
2017/11/11 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
js判断样式className同时增加class或删除class
2013/01/30 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
简单的js表单验证函数
2013/10/28 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
react实现换肤功能的示例代码
2018/08/14 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
python异常和文件处理机制详解
2016/07/19 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
幼儿园元旦家长感言
2014/02/27 职场文书
开发房地产协议书
2014/09/14 职场文书
2014年统计工作总结
2014/11/21 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
讲解MySQL增删改操作
2022/05/06 MySQL