attachEvent传递给其handler的一个默认参数

简介:

以下文章是转 :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获取需要的信息。



本文转自Sam Lin博客园博客,原文链接:http://www.cnblogs.com/samlin/archive/2008/01/11/1034590.html,如需转载请自行联系原作者


目录
相关文章
|
XML 前端开发 数据格式
三分钟搞定 Python XPath 语法
XPath(XML Path Language)是一种用于在 XML 文档中查找信息的语言。它基于树状结构的 XML 文档,可以通过路径表达式来选取节点或节点集。也常常用来解析 HTML。 如果你是一个前端,对用路径获取元素可能陌生又熟悉。陌生是很多的路径,熟悉的路径上又有熟悉的属性和方法。下面我们就来探究一下 XPath 的魅力。
|
9月前
|
安全 网络安全 网络虚拟化
配置分支机构与总部之间通过L2TP Over IPSec方式实现安全互通
本文介绍了如何通过配置L2TP over IPSec实现企业分支与总部之间的安全通信。AR1作为分支网关,AR3作为总部网关,通过自拨号方式建立L2TP隧道,并使用IPSec加密保护数据传输,防止信息被窃取或篡改。主要步骤包括配置接口IP地址和静态路由、设置L2TP功能、定义ACL、创建IPSec安全提议、配置IKE对等体、制定安全策略并应用到接口上。最终验证了配置成功后,PC1能够顺利ping通PC2,确保了网络互通和数据安全。
|
11月前
|
小程序 物联网 API
PHP在哪些领域有应用?
【10月更文挑战第11天】PHP在哪些领域有应用?
265 2
|
11月前
Threejs用官方提供的编辑器做一个简单的模型
这篇文章介绍了如何使用Three.js内置的编辑器来创建和编辑简单的3D模型,并提供了相应的操作指南。
1184 1
|
Dart 容器
带你读《深入浅出Dart》二十八、Material和Cupertino组件(1)
带你读《深入浅出Dart》二十八、Material和Cupertino组件(1)
149 2
|
C++ Windows
Qt configure脚本说明
configure脚本功能非常强大,可以通过它对qt进行配置裁剪, 为了编译更快一点可以使用下面参数: -fast 快速配置 -nomake 可以不编译不需要的文件夹,根目录下面的目录都可以过滤 比如 -nomake examples -nomake demos  -nomake tools 等等 另外就是一些不需要的模块也可以通过配置脚本来启用或者禁用,除了一些必须的模块像gui,corelib等,都是根据配置环境监测的,如果检测到不能编译,那么就自动禁用,否则就启用。
1842 0
|
缓存 前端开发 JavaScript
FIS —— 百度开源的前端集成解决方案
FIS是百度开源的前端集成解决方案,这是团队和百度众多产品线共同探索出一套前端集成解决方案。解决了前端生成中前端静态资源加载优化、页面运行性能优化、基础编译工具、运行环境模拟、js|css组件化开发等心问题。
952 0
FIS —— 百度开源的前端集成解决方案
|
弹性计算 运维 Kubernetes
攻坚、变革、创新 | 阿里研究员千字细说阿里云的十年“计算”重构史
听阿里巴巴集团研究员、阿里云智能弹性计算负责人张献涛,阿里云智能资深技术专家、阿里云容器技术负责人易立,还原阿里云十年“计算”重构史。
攻坚、变革、创新 | 阿里研究员千字细说阿里云的十年“计算”重构史
|
安全 Java 容器
多线程学习时常出现的问题(一)高并发下的ArrayList和并发下诡异的HasMap
多线程学习时常出现的问题(一)高并发下的ArrayList和并发下诡异的HasMap
285 0
|
Web App开发 Serverless API
函数计算搭建 Serverless Web 应用(二)- 自定义域名
绑定自定义域名可以允许用户通过自定义域名访问 FC 的函数,配合 HTTP 触发器使用,为使用函数计算搭建 Web 应用提供便利。
8770 0