js在IE和ff之间的差异(兼容)
1.在创建XMLHttpRequest对象时存在兼容
var xhr; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else if(window.ActiveXObject){ xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
2.事件对象event的创建和属性存在差异
IE中,event事件作为window对象的一个属性;而FF则作为参数传递给函数。
同时IE阻止冒泡、阻止默认行为、事件源对象分别为: e.cancelBubble = true ,returnValue = false、srcElement;而在ff为stopPropagation()、preventDefault()、target。
3.input属性
IE为只读属性,高版本的IE也可以读写;FF可以进行读写操作
4.innerText
IE可以识别,ff则不行
5.鼠标的位置存在差异
低版本的IE不能shibiepageX,pageY,ff可以,兼容办法:
var pageX = event.pageX; var pageY = event.pageY; if(pageX ===undefined){ pageX = event.clientX+ (doucment.body.scrollLeft||document.documentElement.scrollLeft); } if(pageY ===undefined){ pageY = event.clientY+ (doucment.body.scrollTop || document.documentElement.scrollTop); }
6.类似 obj.style.height = imgObj.height 的语句
- IE:有效
- Firefox:无效
解决方法:统一使用obj.style.height = imgObj.height + ‘px’;
7.在绑定事件处理上:在注册事件上,IE有一个方法attchEvent(),而ff使用的是addEventListener();