Js获取事件对象
2010-08-04 17:15
423 查看
一般做法:
返回的值都是 “[object Event]“。
但如果是这种方式呢?
一般来说,很少用到这种侵入式的写法(js写在html标签中 onclick="testFun_1()"),也不推荐使用这种方法,会造成维护和开发的麻烦。
或者: <input type="button" id="test" value="点我测试" /> <script type="text/javascript"> var testBtn = document.getElementById('test'); if(window.addEventListener) { testBtn.addEventListener('click', testFun, false); } else if(window.attachEvent) { testBtn.attachEvent('onclick', testFun); } function testFun(e) { var evt = e || window.event; alert(evt); } </script>
返回的值都是 “[object Event]“。
但如果是这种方式呢?
“内事不决问百度,外事不决问谷歌”, 此言不虚。搜索了下,答案还真不少,不过大多数雷同(可能是巧合)。 http://www.blueidea.com/tech/web/2009/6912.asp http://www.cnblogs.com/cuixiping/archive/2008/04/13/1150847.html 愚公 的这个文章(貌似转帖)还是颇有见解的。 <input type="button" id="test_1" value="点我测试" onclick="testFun_1()" /> <script type="text/javascript"> function testFun_1() { var evt = getEvent(); alert(evt); } function getEvent(){ if(window.event) return window.event; //这里用对象检测更为妥当 func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0){ if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){ return arg0; } } func=func.caller; } return null; } </script>
一般来说,很少用到这种侵入式的写法(js写在html标签中 onclick="testFun_1()"),也不推荐使用这种方法,会造成维护和开发的麻烦。
相关文章推荐
- JS获取事件对象,获取事件的源对象(Firefox,IE)
- Js 获取事件对象
- Js获取事件对象代码
- JS获取事件对象_获取事件的源对象(Firefox_IE)
- js 获取事件对象以及元素
- JS 获取触发事件的对象(IE/FireFox)
- js通过事件获取页面元素对象-适用于IE、FireFox
- js事件对象获取兼容写法
- JS获取事件对象,获取事件的源对象(Firefox,IE)
- Js获取事件对象代码
- 获取js事件对象
- js 获取焦点事件所在的对象
- js获取触发事件对象
- js事件对象Event获取pageX,clientX,screenX,offsetX,layerX的方式与区别
- JS 获取触发事件的对象
- js获取事件源及触发该事件的对象
- js中获取触发事件对象的标签名称
- js向body创建对象、对象属性、对象事件,js获取元素坐标、元素边框大小、真实大小
- js获取事件源及触发该事件的对象
- js中获取事件对象的方法小结