一般做法:
<script type="text/javascript"> <br>var testBtn = document.getElementById('test'); <br>testBtn.onclick = testFun; <br>function testFun(e) <br>{ <br>var evt = e || window.event; <br>alert(evt); <br>} <br></script>
或者:
<script type="text/javascript"> <br>var testBtn = document.getElementById('test'); <br>if(window.addEventListener) <br>{ <br>testBtn.addEventListener('click', testFun, false); <br>} <br>else if(window.attachEvent) <br>{ <br>testBtn.attachEvent('onclick', testFun); <br>} <br>function testFun(e) <br>{ <br>var evt = e || window.event; <br>alert(evt); <br>} <br></script>
返回的值都是 “[object Event]“。
但如果是这种方式呢?
<script type="text/javascript"> <br>function testFun_1() <br>{ <br>//此处如何获得? <br>} <br></script>
“内事不决问百度,外事不决问谷歌”, 此言不虚。搜索了下,答案还真不少,不过大多数雷同(可能是巧合)。
http://www.jb51.net/article/19408.htm
http://www.cnblogs.com/cuixiping/archive/2008/04/13/1150847.html
愚公 的这个文章(貌似转帖)还是颇有见解的。
<script type="text/javascript"> <br>function testFun_1() <br>{ <br>var evt = getEvent(); <br>alert(evt); <br>} <br>function getEvent(){ <br>if(window.event) return window.event; //这里用对象检测更为妥当 <br>func=getEvent.caller; <br>while(func!=null){ <br>var arg0=func.arguments[0]; <br>if(arg0){ <br>if((arg0.constructor==Event || arg0.constructor ==MouseEvent) <br>|| (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){ <br>return arg0; <br>} <br>} <br>func=func.caller; <br>} <br>return null; <br>} <br></script>
一般来说,很少用到这种嵌入式的写法(js写在html标签中 onclick="testFun_1()"),也不推荐使用这种方法,会造成维护和开发的麻烦。











