`
Nullin
  • 浏览: 25404 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript 事件监听实例代码[兼容IE,firefox] 含注释

阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>JavaScript事件监听完整实例(含注释)</title> 
<meta name="generator" content="editplus" /> 
<meta name="Keywords" content="AddEventHandler,addEventListener,attachEvent,appendChild,getElementsByTagNamem,createElement,createTextNode,IE与FF兼容性,JavaScript事件,JavaScript监听"> 
<script type="text/javascript"> 
var oEventUtil = new Object(); 
oEventUtil.AddEventHandler = function(oTarget,sEventType,fnHandler) 
{ 
//IE和FF的兼容性处理 
//如果是FF 
if(oTarget.addEventListener){ 
oTarget.addEventListener(sEventType,fnHandler,false); 
} 
//如果是IE 
else if(oTarget.attachEvent){ 
oTarget.attachEvent('on'+sEventType,fnHandler); 
} else{ 
oTarget['on'+sEventType] = fnHandler; 
} 
}; 
//定义oT事件函数 
var oT = function() 
{ 
var oEvent = arguments[0]; 
var oTarget = oEvent.target || oEvent.srcElement; 
alert(oTarget.tagName+'\n'+oTarget.innerHTML+'\n'+oEvent.type); 
} 
//页面加载时制造36个p,每个p里面显示的文字是Line + i 
window.onload = function(){ 
for(var i = 0;i<36;i++) 
{ 
var oP = document.createElement('p'); 
var oText = document.createTextNode('Line'+i); 
oP.appendChild(oText); 
//在文档的第一个div里面添加这些p 
document.getElementsByTagName('div')[0].appendChild(oP); 
} 
//找到所有的p,并添加click的事件监听 
var oPList = document.getElementsByTagName('p'); 
for(var i = 0;i<oPList.length;i++) 
{ 
oEventUtil.AddEventHandler(oPList[i],'click',oT); 
} 
} 
</script> 
<style type="text/css"> 
* 
{ 
margin:0px; 
padding:0px; 
} 
div 
{ 
margin:10px auto; 
width:690px; 
border:solid 1px #000; 
min-height:600px; 
padding:20px; 
} 
div p 
{ 
padding:4px; 
margin-left:4px; 
margin-top:4px; 
border:solid 1px blue; 
width:100px; 
float:left; 
} 
pre{ 
margin:20px 0 0 0; 
} 
a 
{ 
text-indent:4em; 
} 
</style> 
</head> 
<body > 
<div> 
</div> 
</body> 
</html>

本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/19808.htm

 addEventListener原来在IE中不可用,在IE中要用attachEvent,
还在想,在FireFox中运行得好好的,怎么到IE下报错了。
处理IE与FireFox事件监听的对象:

var oEventUtil = new Object(); 
oEventUtil.AddEventHandler = function(oTarget,sEventType,fnHandler) 
{ 
if(oTarget.addEventListener){ 
oTarget.addEventListener(sEventType,fnHandler,false); 
} else if(oTarget.attachEvent){ 
oTarget.attachEvent('on'+sEventType,fnHandler); 
} else{ 
oTarget['on'+sEventType] = fnHandler; 
} 
};

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics