博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
attachEvent传递给其handler的一个默认参数
阅读量:7088 次
发布时间:2019-06-28

本文共 1472 字,大约阅读时间需要 4 分钟。

以下文章是转 :http://www.cnitblog.com/yemoo/archive/2008/01/02/38384.html

attachEvent是IE专有的事件捕获函数,偶也用过了很多次,传入事件名及捕获句柄(即事件处理函数)即可。
如document.attachEvent("onclick",function(){alert('click')});代表点击页面任意位置都会弹出消息“click”。
对于第二个参数function,确实attachEvent会默认传递过去一个参数,不知其他人有没有注意到过,反正偶是第一次发现。
不信你就试试以下代码(单击页面任意位置):

<
script type
=
"
text/javascript
"
>
  
<!--
  
function
 test(){
    alert(argument.length)
    alert(arguments[
0
]);
  }
  document.attachEvent(
"
onclick
"
,test);
  
//
-->
</
script
>

执行上面的函数会分别弹出1和object。
那这个object是什么呢?可能很多人都会猜到了,就是event对象。该event对象包含了当前触发事件的所有信息。
执行以下测试代码(单击页面任意位置):

<
script type
=
"
text/javascript
"
>
  
<!--
  
function
 test(){
    
var
 info
=
'';
    
for
(
var
 i 
in
 arguments[
0
])
      info
+=
(i
+
"
\t:
"
+
arguments[
0
][i]
+
"
\n<br>
"
);
    alert(info);
  }
  document.attachEvent(
"
onclick
"
,test);
  
//
-->
  
</
script
>

发现弹出了以下信息(根据你点击位置的不同显示信息会有不同):

recordset :null
type :click
fromElement :null
toElement :null
altLeft :false
keyCode :0
repeat :false
reason :0
behaviorCookie :0
contentOverflow :false
behaviorPart :0
dataTransfer :null
ctrlKey :false
shiftLeft :false
dataFld :
returnValue :undefined
qualifier :
wheelDelta :0
bookmarks :null
button :0
srcFilter :null
nextPage :
cancelBubble :false
x :328
y :482
srcElement :[object]
screenX :490
screenY :572
srcUrn :
boundElements :[object]
clientX :328
clientY :482
propertyName :
shiftKey :false
ctrlLeft :false
offsetX :326
offsetY :480
altKey :false

这些信息可能有很多对我们都是有用的。但实际上个人感觉这个参数在IE中用处并不大,因为IE中Event是一个全局对象,可以直接使用event获取需要的信息。

转载地址:http://gtfql.baihongyu.com/

你可能感兴趣的文章
十年vForum迎来VMware新起点
查看>>
阿里云推出企业级智能协同办公方案 云桌面、云AP、云客服一应俱全
查看>>
为什么你不需要做一名全栈工程师?
查看>>
波音飞机零件供应商遭黑客劫走5千万欧元
查看>>
Django之路 如何开发通用且万能的的权限框架组件
查看>>
三大研究机构预测:6家公司吃掉80%云计算市场
查看>>
爬虫进阶:反爬策略的应对机制
查看>>
轻量函数式 JavaScript:五、降低副作用
查看>>
机器学习----线性回归模型
查看>>
边缘计算产业联盟是一个什么样的联盟?
查看>>
云爆发对许多企业来说仍然过于超前
查看>>
朝韩网战疑云,国家型黑客再掀波澜
查看>>
94倍性能进化!阿里云企业级ECS发布会推出最新一代异构计算产品
查看>>
行业巨头联合抢占物联网与智能制造先机
查看>>
云服务器 ECS 建站教程:搭建Joomla基础管理平台
查看>>
当我们的数据被泄后,黑客在干什么?
查看>>
如何成为真正发挥大数据作用的数据驱动型公司?
查看>>
RavenDB:基于Windows/.NET平台的NoSQL数据库
查看>>
陕西师范大学:“资助大数据”助推“精准扶贫”
查看>>
浅述云空间与网盘之间的差别所在
查看>>