firefox不支持事件event
文章是转过来的,源于在做多浏览器支持的过错中,事件按钮不起作用,跟踪了错误源头,发现和js中的window.event有关,就顺手google了一个原理过来了
问题详细描述:
window.event无法在firefox上运行W3C不支持window.event。
解決方法:
可写成如下三种方式:
① 传入event参数
- function testEvent(evt) {
- evt = evt ? evt : (window.event ? window.event :null);alert(evt);
- }
- <input type="button" value="测试event" οnclick="javascript:testEvent(event)"/>
②不传event参数
- var evt = window.event || arguments.callee.caller.arguments[0]; //获取event对象
③ 自定义event方法
- function getEvent(){
- if(document.all)
- 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;
- }
- var evt = getEvent();// 获取event对象
IE下,event对象有srcElement属性,但是没有target属性;Firefox下,event对象有target属性,但是没有srcElement属性