事件event在IE和FireFox中的兼容性问题

firefox不支持事件event

文章是转过来的,源于在做多浏览器支持的过错中,事件按钮不起作用,跟踪了错误源头,发现和js中的window.event有关,就顺手google了一个原理过来了

 

 

问题详细描述: 
 

 

         window.event无法在firefox上运行W3C不支持window.event。

 

 

 

 
解決方法:

 
        可写成如下三种方式:

 
              ① 传入event参数
  1. function testEvent(evt) {  
  2.          evt = evt ? evt : (window.event ? window.event :null);alert(evt);  
  3.  }  
  4.   
  5.  <input type="button" value="测试event" οnclick="javascript:testEvent(event)"/>  
②不传event参数 
  1. var evt = window.event || arguments.callee.caller.arguments[0]; //获取event对象  
③ 自定义event方法
  1. function getEvent(){       
  2.     if(document.all)      
  3.         return window.event;          
  4.     func=getEvent.caller;              
  5.     while(func!=null){      
  6.         var arg0=func.arguments[0];  
  7.         if(arg0){  
  8.            if((arg0.constructor==Event || arg0.constructor==MouseEvent)  
  9.              || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){      
  10.                 return arg0;  
  11.             }  
  12.         }  
  13.         func=func.caller;  
  14.     }  
  15.     return null;  
  16. }  
  17.   
  18.   
  19. var evt = getEvent();// 获取event对象  
  IE下,event对象有srcElement属性,但是没有target属性;Firefox下,event对象有target属性,但是没有srcElement属性

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值