关于火狐(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 Tips(4) 一些关于提高JQuery性能的Tips
Dec 19 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
Jan 11 Javascript
js处理表格对table进行修饰
May 26 Javascript
jquery延迟对象解析
Oct 26 Javascript
Bootstrap Modal遮罩弹出层(完整版)
Nov 21 Javascript
详解.vue文件解析的实现
Jun 11 Javascript
JS实现方形抽奖效果
Aug 27 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
Sep 29 Javascript
javascript实现文本框标签验证的实例代码
Oct 14 Javascript
vue.js实现回到顶部动画效果
Jul 31 Javascript
vue监听用户输入和点击功能
Sep 27 Javascript
vue实现井字棋游戏
Sep 29 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 无限级数据JSON格式及JS解析
2010/07/17 PHP
PHP 作用域解析运算符(::)
2010/07/27 PHP
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
Python生成验证码实例
2014/08/21 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
python画图--输出指定像素点的颜色值方法
2019/07/03 Python
简单了解django索引的相关知识
2019/07/17 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
运动会广播稿200字
2014/01/15 职场文书
共筑中国梦演讲稿
2014/04/23 职场文书
大学生学年个人总结
2015/02/15 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书