IE兼容性

一、JS

1、事件绑定:addEventListenter与attachEvent事件处理函数中this的指向不同,IE指向window
2、获取事件对象:事件处理函数 window.event
3、获取触发事件的DOM元素:现代浏览器 event.target ,IE event.srcElement
4、阻止默认行为:e.preventDefault(), e.returnValue=false
5、阻止冒泡:e.stopPropagation(), e.cancelBubble=true;
6、获取样式信息:getCumputedStyle(obj,null).width, currentStyel.width
7、实例化XHR对象: new XMLHttpRequest() ,new ActiveXObject()
8、获取DOM元素:parentNode parentElement

二、CSS属性

window.event对象差异
IE:有window.event对象
FF:没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=doMouseMove(event)

获取鼠标当前坐标
IE:event.x和event.y。
FF:event.pageX和event.pageY。
通用:两者都有event.clientX和event.clientY属性

鼠标当前坐标(加上滚动条滚过的距离)
IE:event.offsetX和event.offsetY。
FF:event.layerX和event.layerY。

获取窗体的高度和宽度
IE:document.body.offsetWidth和document.body.offsetHeight。注意:此时一定要有body标签
FF:window.innerWidth和window.innerHeight,以及document.documentElement.clientWidht和document.body.clientHeight。
通用:document.body.clientWidht和document.body.clientHeight。

大专栏  IE兼容性>添加事件
IE:element.attachEvent(‘onclick’,func).
FF:element.addEventListener(‘click’,func,true).
通用:element.onclick=func。

标签的自定义属性
IE: 如果给标签div1定义了一个属性value,可以div1.value和div1[“value”]
FF: 不能用上面的方法。
通用:div1.getAttribute(‘value’)。

父节点、子节点和删除节点
IE: parentElement、parement.children,element.removeNode(true)。
FF:parentNode、parentNode.childNodes,node.parentNode.removeChild(node)。

clentX,pageX,offsetX,layerX,screenX,offsetLeft
screenX:鼠标在显示屏幕上的坐标。
clientX:鼠标在页面显示区域的坐标。
以上都是浏览器通用的。一下为特有方法:
pageX:现代游览器都有。鼠标在页面上的位置,从页面左上角开始定位。
offsetX:IE特有。鼠标相对于触发事件的元素的位置,从内容左上角开始定位,从border左上角开始!

注:IE和FF的定位有个1px的差别,实际上,IE的定位从0开始,FF的定位从1开始,FF永远会比IE大1px,需要根据实际情况处理。

offsetLeft:这个属性不是事件对象的属性,而是DOM对象所有的,该属性表示是DOM对象的层级关系中里该对象最近的,设置了postion的父对象中的位置,虽然话是这么说的,但是不同的浏览器效果不一样。

猜你喜欢

转载自www.cnblogs.com/liuzhongrong/p/12289459.html