http://younglab.blog.51cto.com/416652/248263

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml" id="myHtml" > 
  3. <head> 
  4. <title>attachEvent和addEventListener的区别</title> 
  5. <script type="text/javascript"> 
  6. window.onload = function(){ 
  7.     var div = document.getElementById("divid"); 
  8.     if(window.attachEvent) 
  9.         div.attachEvent("onclick",func); 
  10.     else if(window.addEventListener) 
  11.         div.addEventListener("click",func,false); 
  12.     function func(){ 
  13.         alert(this.id); 
  14.     } 
  15.     func(); 
  16.     } 
  17. </script> 
  18. </head> 
  19. <body> 
  20.     <div id="divid">点我</div> 
  21. </body> 
  22. </html> 

页面加载后 firefox和ie输出的都是undefined,而点击“点我”之后,firefox输出的是divid,ie输出的还是undefined。

要使ie中也能输出divid,则要使用div.onclick=func;
即把

  1. if(window.attachEvent) 
  2.         div.attachEvent("onclick",func); 
  3.     else if(window.addEventListener) 
  4.         div.addEventListener("click",func,false); 

改成

  1. div.onclick=func

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- 
  2.  
  3. transitional.dtd"> 
  4. <html xmlns="http://www.w3.org/1999/xhtml" id="myHtml" > 
  5. <head> 
  6. <title>attachEvent和addEventListener的区别</title> 
  7. <script type="text/javascript"> 
  8. window.onload = function(){ 
  9.     var div = document.getElementById("divid"); 
  10.     if(window.attachEvent) 
  11.         div.onclick=func
  12.     else if(window.addEventListener) 
  13.         div.addEventListener("click",func,false); 
  14.     function func(){ 
  15.         alert(this.id); 
  16.     } 
  17.     func(); 
  18.     } 
  19. </script> 
  20. </head> 
  21. <body> 
  22.     <div id="divid">点我</div> 
  23. </body> 
  24. </html> 

1111