首页 » 我的课程 » web前端 » 正文

各种浏览器中获取event的方法

IE中 要用window.event 来获取

而火狐需要显式的传递event

于是有个通用的办法

e=arguments.callee.caller.arguments[0] || window.event; 

如代码

<input type=”text” id=”txt” onkeydown=”aa()” />
 
 
  <script>
 
  function aa()
  {
  var e=arguments.callee.caller.arguments[0] || window.event;
  alert(e.keyCode)
  }
   // document.getElementById(“txt”).onkeydown=aa;  //这样写没用 
   
   </script>


说明:对于函数来说,caller 属性只有在函数执行时才有定义。假如函数是由顶层调用的,那么 caller 包含的就是 null 。假如在字符串上下文中使用 caller 属性,那么结果和 functionName.toString 相同,也就是说,显示的是函数的反编译文本。

说明:

arguments 该对象代表正在执行的函数和调用他的函数的参数
arguments.callee指的就是当前的函数体
arguments.callee.caller就是当前函数的上级函数
所以当执行onclick=”onkeydown()”时arguments.callee就是aa(),arguments.callee.caller就是function onkeydown
onkeydown的第一个能数就是event,也就是arguments.callee.caller.arguments[0]这个。

发表评论