3-1b.常用js兼容IE和非IE方法

1.事件对象

IE:有window.event对象    
FF:是通过给函数的参数传递event对象。
解决方法:var event = event || window.event;  

2.鼠标当前坐标(常用)

IE:event.x和event.y。    
FF:event.pageX和event.pageY。    
解决方法:都有event.clientX和event.clientY属性。 注意只要出现clientX/Y就要加上滚动条距离;思考:如何当页面滚到底部,如何置顶。      

3.鼠标当前坐标,当有滚动条,就会加上滚动条滚过的距离(不常用)

IE:event.offsetX和event.offsetY。    
FF:event.layerX和event.layerY。
解决方法:
        var x = event.offsetX || event.layerX;
        var y = event.offsetY || event.layerY;

4.触发事件的对象

IE下,event是srcElement属性;
FF下,even是target属性;
解决方法:
        obj = event.srcElement ? event.srcElement : event.target;

5.在mouseover事件中表示鼠标来自哪个元素和在mouseout事件中指向鼠标去往的那个元素

IE下,fromElement和toElement;
FF下,relatedTarget;
解决方法:
        obj = event.relatedTarget || event.fromElement;
        obj = event.relatedTarget || event.toElement;

6.html标签的x和y的坐标位置

IE:有style.posLeft 和 style.posTop   offsetLeft/top 
FF:offsetLeft/top     
解决方法:通用object.offsetLeft 和 object.offsetTop。

7.窗体的高度和宽度

IE:document.body.offsetWidth和document.body.offsetHeight。注意:此时页面一定要有body标签。    
FF:window.innerWidth和window.innerHegiht或者document.documentElement.clientWidth和  
    document.documentElement.clientHeight。    
解决方法:通用document.body.clientWidth和document.body.clientHeight。        

8.标签的自定义属性

IE:如果给标签div1定义了一个属性value,可以div1.value和div1["value"]取得该值。    
FF:不能用div1.value和div1["value"]取。    
解决方法:通用obj.getAttribute("value")。 

9.获取浏览器滚动条距离

非chrome:document.documentElement.scrollTop; chrome:document.body.scrollTop;

9.添加事件

results matching ""

    No results matching ""