多浏览器兼容分析.pdf
《多浏览器兼容分析.pdf》由会员分享,可在线阅读,更多相关《多浏览器兼容分析.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 累积:技海拾贝|Cumulation 多浏览器兼容分析文:国际合作事业部苗志远程序员对于javascript都是有些瞧不上的心思,程序员只管实现功能,只要功能能用就行。然而随着WEB2.0的日益风行,网络用户越来越多,用户对于WEB 系统的评价标准已经不再简单停留于“能用”的地步,而是要“好用”,这就对WEB 设计者提出了更高的要求:响应速度、兼容性、美观程度、交互性等等。1 概述W3C 对标准的推进,Firefox,Chrome,Safari,Opera 的出现,结束了IE 雄霸天下的日子。然而,这对开发者来说,是好事,也是坏事。说它是好事,是因为浏览器厂商为了取得更多的市场份额,会促使
2、各浏览器更符合W3C标准,而得到更好的兼容性,并且,不同浏览器的扩展功能(例如-moz,-webkit开头的样式),对 W3C标准也是个推进;说它是坏事,因为,多个浏览器同时存在,这些浏览器在处理一个相同的页面时,表现有时会有差异。这种差异可能很小,甚至不会被注意到;也可能很大,甚至造成在某个浏览器下无法正常浏览。我们把引起这些差异的问题统称为“浏览器兼容性问题”。而正是这些“浏览器兼容性问题”,无形中给我们的开发增加了不少难度。从浏览器内核的角度来看,浏览器兼容性问题可分为以下三类:1.渲染相关:和样式相关的问题,即体现在布局效果上的问题。2.脚本相关:和脚本相关的问题,包括JavaScri
3、pt和 DOM、BOM方面的问题。对于某些浏览器的功能方面的特性,也属于这一类。3.其他类别:除以上两类问题外的功能性问题,一般是浏览器自身提供的功能,在内核层之上的,这里暂不讨论。2 2 浏览器内核要搞清楚浏览器内核是什么,首先应该先搞清楚浏览器的构成。简单来说浏览器可以分为 两部分,shell+内核。其中shell的种类相对比较多,内核则比较少。Shell是指浏览器的外壳:例如菜单,工具栏等。主要是提供给用户界面操作,参数设臵等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。也有一些浏览器并不区分外壳和内核。从 Mozilla将 Gecko
4、独立出来后,才有了外壳和内核的明确划分。目前主流的浏览器有IE6/7/8、Mozilla、FireFox、Opera、Safari、Chrome、Netscape 等。2.1什么是浏览器内核浏览器内核又可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS 引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。JS 引擎则是解析Javascript语言,执行javascript语言来实现网页的动
5、态效果。最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。有一个网页标准计划小组制作了一个ACID 来测试引擎的兼容性和性能。内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有10 多种,但是常见的浏览器内核可以分这四种:Trident、Gecko、Presto、Webkit。2.2 渲染引擎Trident又称 MSHTML,是微软开发的渲染引擎(包含了Javascript引擎 JScript),目前很多浏览器都使用这个引擎,例如IE,MaxThon,TT,The World,360,搜狗浏览器,Maxthon(最新版已经不使用)
6、等。Gecko 是 C+开发的,Open Source 的渲染引擎,包括了SpiderMonkey(Rhino)。主要的使用者有Firefox,Netscape6及以上版本,MozillaSuite/SeaMonkey等。Webkit是 苹 果 公 司 基 于KHTML 开 发 的。他 包 括Webcore 和JavaScriptCore文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1
7、I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 Z
8、U5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1
9、I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 Z
10、U5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1
11、I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 Z
12、U5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z13(Squirrel
13、Fish,V8)两个引擎。主要的使用者有Safari,Chrome。Presto 由 Opera Software公司开始的,用于 Opera 的渲染引擎。Macromedia Dreamweaver(MX版本及以上)和 Adobe Creative Suite 2 也使用了 Presto 的内核。主要的使用者为Opera7及以上。2.3 JS引擎JavaScript最初由网景公司的Brendan Eich 设计,是一种动态、弱类型、基于原型的语言,内臵支持类。以它为基础,制定了ECMAScript 标准。他的起源并不是如Javascript高级程序设计 书中所述,是 Brendan Eich
14、 自主发明的。(参考 aimingoo 的考证文章)JavaScript在浏览器的实现中还必须含有DOM 和 BOM。Web浏览器一般使用公共API 来创建主机对象来负责将 DOM 对象反射进JavaScript。2.4 文档类型声明源码的顶部都会有DocType声明,在遵循标准的任何Web文档中,DOCTYPE 都是一项必需的元素。它会影响代码验证,并决定了浏览器最终如何显示你的web文档。在默认情况下,FF 和 IE 的解释标准是不一样的,也就是说,假如一个网页没有声明DOCTYPE,它就会以默认的DOCTYPE 解释下面的HTML。在同一种标准下,不同浏览器的解释模型都有所差异,假如声明
15、标准不同,差异更大。一、什么是DOCTYPE DOCTYPE 是 Document Type(文档类型)的简写,在页面中,用来指定页面所使用的XHTML(或者 HTML)的版本。要想制作符合标准的页面,一个必不可少的要害组成部分就是DOCTYPE声明。只有确定了一个正确的DOCTYPE,XHTML 里的标识和CSS才能正常生效。二、DOCTYPE 的规则DOCTYPE 声明的写法遵循一定的规则,它指出阅读程序应该用什么规则集来解释文档中的标记。在Web 文档的情况下,“阅读程序”通常是浏览器或者校验器这样的一个程序,“规则”则是 w3c 所发布的一个文档类型定义(dtd)中包含的规则。文档编码
16、:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4
17、C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码
18、:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4
19、C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码
20、:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4
21、C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码
22、:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z14 每个 dtd 都包括标记、attributes、properties等内容,它们用于标记web文档的内容;此外还包括一些规则,它们规定了哪些标记能出现在其他哪些标记中。每个 web建议标准(比如 html 4 frameset和 xhtml 1.0 transitional)都有自己的dtd。声明位于文档中的最前面的位臵,处于 标签之前。此标签可告知浏览器文档使
23、用哪种HTML 或 XHTML 规范。该标签可声明三种DTD 类型,分别表示严格版本、过渡版本以及基于框架的HTML 文档。以下面这个 标签为例:在 上 面 的 声 明 中,声 明 了 文 档 的 根 元 素 是html,它 在 公 共 标 识 符 被 定 义 为-/W3C/DTD XHTML 1.0 Strict/EN 的 DTD 中进行了定义。浏览器将明白如何寻找匹配此公共标识符的DTD。如果找不到,浏览器将使用公共标识符后面的URL 作为寻找DTD 的位臵。提示和注释:注释:标签没有结束标签!2.4.1 HTML HTML 4.01 规定了三种文档类型:Strict、Transition
24、al 以及Frameset。HTML Strict DTD 如果您需要干净的标记,免于表现层的混乱,请使用此类型。请与层叠样式表(CSS)配合使用:文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8
25、V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:CC2K1I2H7N5 HU1H6P4C8V5 ZU5G7K9Q5Z1文档编码:C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浏览器 兼容 分析
限制150内