读到跨浏览器的兼容性这一块,虽然简短,结合自己微薄的经验,觉得说的还是很有道理的。
javaScript要运行在多种环境和多种平台上。它能用来开发web页面(当然不仅是web页面),这些页面可能要运行在Mac OS X,Windos和Linux等操作系统中,它不需要特别的下载或安装,因为浏览器内置了它。
很多浏览器都实现了javaScript的公共子集,也就是说大部分代码在不同了浏览器上按理说都应该能很好的兼容。可是大家都在说,也都在实际的碰到javaScript的兼容问题,这是因为什么呢?
大多数情况主要是由于两个方面。
一.浏览器之间的DOM不兼容
大多数跨浏览器不兼容问题都是由于浏览器所开发的底层的文档对象模型不同(也就是大家常说的DOM,Document Object Model),而不是语言本身。例如,一个javaScript语言的对象可是是Date或String,无论在Safari还是Navigator中实现,它都还是Date或String。一个DOM的实例对象应该是一个document对象,它代表了浏览器中保存WEB页面那一部分。在不同的浏览器各自对javaScript(或ECMAScript)的实现中,如何开放和操作这些DOM对象,导致了浏览器之间的不兼容性。
二.浏览器之间的CSS不兼容
页面中的javaScript操作,很多是对WEB页面的外观或行为进行操作。或隐藏显示元素,或改变颜色、字体、移动、改变大小或设置元素形状等。而这些操作,大部分要涉及到CSS(级联样式表,Cascading Style Sheet)。而各个浏览器的CSS的实现可能有所不同,这也导致了一些跨浏览器不兼容的问题。(然而,javaScript在页面上所做的一切,无非就是改变一个元素的CSS样式属性。)
注:虽然ECMAScript一致声称所有内置的javaScript对象是相同的,但实际上各个浏览器还是存在一些小的差异,然而,对于大多数情况来说,过去的跨浏览器问题都是因为DOM或CSS的不同。
posted on 2008-07-23 20:08
连夜雨 阅读(248)
评论(0) 编辑 收藏 所属分类:
JavaScript