讀到跨瀏覽器的兼容性這一塊,雖然簡短,結合自己微薄的經驗,覺得說的還是很有道理的。
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
連夜雨 閱讀(258)
評論(0) 編輯 收藏 所屬分類:
JavaScript