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

本文详细解析了前端开发中常见的事件兼容性问题,包括滚动距离获取、事件对象属性、样式获取、事件冒泡与默认行为阻止、事件监听、事件目标对象、键盘事件码及事件源的兼容性解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参数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兼容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值