首页 理论教育JavaScript教程:浏览器兼容性解析

JavaScript教程:浏览器兼容性解析

【摘要】:在1.1.2 JavaScript特点一节提到过JavaScript具有跨平台特性,仅在浏览器上运行,与操作系统无关。浏览器兼容性有关问题如下:1.事件兼容性事件绑定addEventListener()与attachEvent(),对应事件解绑removeEventListener()与detachEvent();事件对象,IE下Event是全局对象,Chrome、Firefox下Event是函数参数;事件冒泡stopPropagation()与cancleBubble;事件阻止preventDefault()与returnValue;事件名称不同,比如鼠标滚轮事件,Chrome、IE下是mousewheel,Firefox下是DOMMouseScroll。

在1.1.2 JavaScript特点一节提到过JavaScript具有跨平台特性,仅在浏览器上运行,与操作系统无关。不过因为不同浏览器厂商的实现不同,也会导致JavaScript在浏览器上存在一些兼容性问题,这类问题涉及具体的JavaScript应用,建议读者在学习完本书之后再深入研究。本节只做简单介绍,不做深入学习。浏览器兼容性有关问题如下:

1.事件兼容性

(1)事件绑定addEventListener()与attachEvent(),对应事件解绑removeEventListener()与detachEvent();

(2)事件对象,IE下Event是全局对象,Chrome、Firefox下Event是函数参数;

(3)事件冒泡stopPropagation()与cancleBubble;

(4)事件阻止preventDefault()与returnValue;

(5)事件名称不同,比如鼠标滚轮事件,Chrome、IE下是mousewheel,Firefox下是DOMMouseScroll。

2.AJAX兼容性

(1)http请求对象构建方式,new XMLHttpRequest()与new ActiveXObject("Microsoft.XMLHTTP");

(2)http请求进度事件progress;(www.chuimin.cn)

(3)IE针对未知的responseType会抛出错误。

3.样式对象

(1)IE的呈现原理导致runtimeStyle与currentStyle不能完全同步;绝大部分情况下,只需要关心currentStyle;

(2)className对象操作,IE不支持操作classList。

4.JavaScript不同版本

(1)最新函数支持,比如DOM选择器;

(2)最新语言特性支持,比如变量作用域。

遇到兼容性问题时,我们一般可以通过查询官方文档或者搜索开发者论坛解决。