ie中常见的js语法兼容问题

参数e表示事件

1、获取滚动距离:滚动条

document.documentElement.scrollTop || document.body.scrollTop
document.documentElement.scrollTop ()
document.body.scrollTop() // 兼容IE版本

2、事件中的兼容

e = e || window.event;
标准兼容写法:e.screenX、e.screenY、e.offsetX、e.offsetY
IE兼容写法:window.event、window.event.screenX // 将事件作为window对象的事件属性

3、样式兼容(非行间样式)

getcomputedStyle() 传两个参数 第一个为当前对象 第二个为伪类选择器,通常用false
currentStyle() 使用方式为:对象.current[attr]

4、事件冒泡兼容的解决

e.stopPropagation ? e.stopPropagation() : e.cancelBubble=true; // 不可反过来写
e.stopPropagation() // 标准兼容写法
e.cancelBubble=true; // IE兼容写法

5、默认行为兼容的解决

e.preventDefault ? e.preventDefault() : e.returnValue=false;
preventDefault() // 标准兼容写法
returnValue() // IE兼容写法

6、DOM2级事件监听兼容

addEventListener() || removeEventListener() ; // 标准浏览器的监听和移除写法
attachEvent() || detachEvent() // IE的监听和移除写法

7、事件目标对象兼容

var src = event.target || event.srcElement;
IE的事件对象有srcElement属性,无target属性
标准浏览器的事件对象有target属性,无srcElement属性

8、获取按下的键盘码

e.keyCode || e.which
标准兼容 || IE兼容

9、获取事件源

e.target || e.srcElement // 点击事件,获取的是点击位置标签名(大写)
标准兼容 || IE兼容

你可能感兴趣的:(工作,web前端)