浅谈IE事件处理与其他浏览器的差异
2018-03-20 10:32
393 查看
1、表示发生事件:
(1)非IE浏览器下,事件对应的函数有一个隐藏的变量e,表示发生事件。(2)IE下,不需要e变量,window.event表示发生事件。
解决方案:用e||window.event来兼容。
2、触发事件对象(触发事件的元素被认为是目标target):
(1)IE下,window.event对象有srcElement属性,但没有target属性。(2)Firefox下,e对象有target属性,但没有srcElement属性。
(3)Chrome下,e对象同时具有target和srcElement属性。
解决方案:event.srcElement ? event.srcElement : event.target来兼容。
3、按键码(字符代码):
(1)IE下,window.event对象只有keyCode属性。(2)FireFox下,e对象有which和charCode属性。
(3)Opera下,e对象有keyCode和which属性。
(4)Chrome下,e对象有keyCode、which和charCode属性。
解决方案:用e.keyCode || e.which || e.charCode来兼容。
4、阻止事件的默认行为:
(1)IE 中阻止事件的默认行为需要将window.event.returnValue属性设置为false。(2)非IE阻止事件的默认行为需要调用 e.preventDefault() 方法。
解决方案:条件判断浏览器是否具有event.preventDefault再做相应处理。
5、阻止事件冒泡:
(1)IE阻止事件冒泡需要设置window.event.cancelBubble = true。(2)非IE阻止事件冒泡需要调用e.stopPropagation()。
解决方案:条件判断浏览器是否具有event.stopPropagation再做相应处理。
转自: http://blog.csdn.net/zhouziyu2011/article/details/60466701
相关文章推荐
- IE与其他浏览器处理鼠标事件的差异
- IE事件处理程序与其他浏览器之区别
- 浅谈IE事件处理与其他浏览器的差异
- 动态添加事件及区分IE和其他浏览器的JS脚本
- javascript事件在IE和DOM浏览器的差异总结
- IE与非IE内核的浏览器change事件的处理
- 跨浏览器事件处理,能力检测:IE事件,DOM0级,DOM2级
- 跨浏览器的事件处理程序//IE、chrome
- Firefox 对条件判断语句块内的函数声明的处理与其他浏览器有差异
- javascript事件在IE和DOM浏览器的差异总结
- JS阻止冒泡事件和默认事件(IE和其他浏览器兼容)
- 看到csdn上一贴关于ie与其他浏览器的DHTML差异的讨论,有感而发
- extjs 中ie和其它浏览器处理小差异
- 如何跨浏览器处理事件【兼容各大浏览器包括ie】
- 用IE中文参数乱码问题,其他浏览器不乱码的处理方式
- IE及其他浏览器下图片透明化处理
- IE事件处理程序及跨浏览器解决
- DOM事件处理跨浏览器(兼容IE)封装
- IE,firefox 里对浏览器事件处理的兼容性处理
- JavaScript Wheel Event - 使用JavaScript处理浏览器的鼠标滑轮事件