###1.1 Javascript的起源### Javascript是Netscape公司(網景通訊公司1998年被美國在線AOL收購)與sun公司合做開發的。 Javascript的第一個版本,即Javascript 1.0版本出如今1995年推出的Netscape Navigator 2瀏覽器中。當時Netscape Navigator瀏覽器主宰着市場,微軟的IE是追趕者。微軟很快在IE3發佈了本身的VCScript語言,同時以JScript爲名發佈了Javascript的第一個版本,以此很快跟上了Netscape的步伐。 面對微軟的競爭,Netscape和Sun聯合ECMA(歐洲計算機制造商協會)對Javascript語言進行了標準化。因而出現了ECMAScript語言,這是同一個語言的另外一個名字。人們如今談論的Javascript實際上就是ECMAScript. 到了1996年,Javascript、ECMAScript、JScript(隨便怎麼稱呼它)已經站穩了腳跟。Netscape和微軟在各自的第三版瀏覽器都不一樣程度的支持Javascript 1.1語言。 Javascript和Sun公司開發的Java沒有任何聯繫,命名爲Javascript大概是想讓它聽起來有系出名門的感受。 ###1.2 DOM### DOM(文檔對象模型)是一套對文檔的內容進行抽象和概念化的方法。 ###1.3 瀏覽器戰爭### Netscape Navigator4發佈於1997年6月,IE4發佈於同年10月,這兩種瀏覽器大幅擴展了DOM。網頁設計人員開始接觸到一個新名詞:DHTML ####1.3.1 DHTML#### DHTML含義是:程序員
例如,用HTML標記一個頁面元素:編程
<div id="myelement">This is my Element</div>
而後用CSS爲這個頁面元素定義以下位置樣式瀏覽器
#myelement{ position:absolute; left:50px; top:100px; }
接下來,只需利用Javascript改變myelement元素的left和top樣式就可讓它在頁面上隨意移動。 不幸的是,NN4和IE4使用的是兩種不兼容的DOM。編程語言
####1.3.2 瀏覽器之間的衝突#### Netscape公司的DOM使用了專有元素,這些元素成爲層(layer)。層有惟一的ID,Javascript代碼應該這樣引用它們:ide
document.layers['myelement']
而微軟必須這樣操作系統
document.all['myelement']
這兩種瀏覽器的差別不僅這麼一點,例如獲取myelement的left位置並賦值給xpos NN4:設計
var xpos = document.layers['myelement'].left;
IE4:code
var xpos = document.all['myelement'].leftpos;
這就致使了一個問題:程序員在編寫DOM腳本代碼時必須知道它們運行在哪一種瀏覽器環境中,因此不得不寫一些探查瀏覽器屬性和重複的代碼。對象
###1.4制定標準###接口
瀏覽器製造商以DOM爲武器展開營銷大戰的同時,W3C默默的結合你們的優勢推出了一個標準化的DOM。使人欣慰的是,瀏覽器製造商拋開彼此的敵意攜手W3C制定新的標準並與1998年10月完成了「第一級DOM」 因而,剛纔的例子就統一爲
var xpos = document.getElementById('myelement').style.left;
####1.4.1 瀏覽器之外的考慮#### DOM是一種API,API是一組已經獲得有關各方共同承認的基本約定。 W3C對DOM的定義是:「一個與系統平臺和編程語言無關的接口,程序和腳本能夠經過這個接口動態的訪問和修改文檔的內容、接口和樣式」。標準化DOM可用性遠遠超出了各自爲戰的瀏覽器製造商推出的各類專用DOM。 ####1.4.2 瀏覽器戰爭的結局#### 因爲全部運行Windows操做系統的我的電腦都預裝了IE,瀏覽器市場份額大戰中微軟打敗了Netscape,專有的HTML和DOM標記對這個最終結果幾乎沒有產生什麼影響。 下一代瀏覽器產品對Web標準的支持獲得了極大的改善。 ####1.4.3 嶄新的起點#### 如今Netscape Navigator基本從人們的視線消失了,蘋果公司2003年發佈了它的Safari瀏覽器(基於WebKit),它從一開始就堅決不移的遵循DOM標準。FireFox(以Gecko爲核心)、Chrome、Opera和IE(以Trident爲核心)都對DOM有着良好的支持。 今天幾乎全部的瀏覽器都內置了對DOM的支持。