js中的浏览器兼容问题

1、window.event
(1)问题:只能在IE下运行,在FF下不能,是因为Firefox的event只能在事件发生的现场使用。
(2)解决:
a.可以这样解决

       <input id="btn1" type="button" />
       window.onload = function(){
            var btn1 = document.getElementById('btn1');
            btn1.onmouseover=function(ev){
                var myEvent=ev||window.event;
                alert(myEvent.clientX);
                alert(myEvent.clientY);
            }
        }

b.或者可以通过给函数的参数传递event对象。

 <input type="button" onmousemove="showDiv(event);"//event不需要加引号 
function showDiv(ev) 
{ 
var myEvent=ev||window.event; 
myEvent.clientX; 
myEvent.clientY; 
}

2、添加事件:attachEvent和addEventListener
(1)问题:
FF使用addEventListener :[target.addEventListener(type, listener, useCapture); ][obj.addEventListener(“click”, myFunction);]

IE8及更早的版本使用attachEvent:[attachEvent(“onclick”, myFunction)]
(2)解决:

if (document.attachEvent) 
document.attachEvent("click", clickHandler,false);
else 
document.addEventListener("onclick",clickHandler);

封装函数:

function addHandler(element,type,handler) {
       //DOM 2级处理 chrome ff
        if (element.addEventListener) {
          element.addEventListener(type,handler,false);
        }
        //IE事件处理
        else if (element.attachEvent) {
          element.attachEvent('on'+type,handler);
        }
        //DOM 0级处理 更低级的浏览器
        else{
          element['on'+type]=handler;
        }
 }

3、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值