<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>handler</title> <script type="text/javascript"> function showWord(){ alert("hello world!") } var mybtn=document.getElementsByClassName('btn')[0]; var eventUtil={ addHandler:function(element,type,handler){ if (element.addEventListener) { element.addEventListener(type,handler,false); } else if (element.attachEvent) { element.attachEvent('on'+type,handler); } else{ element['on'+type]=handler; } } } eventUtil.addHandler(mybtn,'click',showWord()) </script> </head> <body> <input type="button" value="try" /> </body> </html>
改为 eventUtil.addHandler(mybtn,'click',showWord) 就OK了!
如果直接写showWord()就是直接调用,而showWord是在事件触发一后系统帮你调用的。所以应该写showWord
因为你的警告框写在最上面,浏览器还没获取到你的html代码,就开始解析你的js部分了