关于火狐(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 相关文章推荐
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
Feb 07 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
Dec 21 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
Dec 01 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
JS Canvas定时器模拟动态加载动画
Sep 17 Javascript
微信小程序 less文件编译成wxss文件实现办法
Dec 05 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
Dec 08 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
Aug 14 Javascript
JavaScript多线程运行库Nexus.js详解
Dec 22 Javascript
更改BootStrap popover的默认样式及popover简单用法
Sep 13 Javascript
Element Rate 评分的使用方法
Jul 27 Javascript
vue实现可拖拽的dialog弹框
May 13 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
PHP 一个页面执行时间类代码
2010/03/05 PHP
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
js 函数的副作用分析
2011/08/23 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
了解重排与重绘
2019/05/29 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
Python读写Excel文件的实例
2013/11/01 Python
Python对文件操作知识汇总
2016/05/15 Python
python实现排序算法解析
2018/09/08 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
python urllib和urllib3知识点总结
2021/02/08 Python
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
互动出版网:专业书籍
2017/03/21 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
应聘医药代表职位求职信
2013/10/21 职场文书
《植物妈妈有办法》教学反思
2014/02/25 职场文书
室内设计专业自荐信
2014/05/31 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
2016新年问候语大全
2015/11/11 职场文书
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers