《JavaScript設計與開發新思維》——1.6JavaScript版本和瀏覽器支援
本節書摘來自非同步社群《JavaScript設計與開發新思維》一書中的第1章,第1.6節,作者:【美】Larry Ullman著,更多章節內容可以訪問雲棲社群“非同步社群”公眾號檢視
1.6 JavaScript版本和瀏覽器支援
我們已經說明過,JavaScript的核心來自於ECMAScript,ECMAScript在2009年推出了最新的第5版。JavaScript的當前版本是基於ECMAScript 5的1.8.5版本,於2010年7月推出。但是在JavaScript中程式設計時,版本的問題不如“在什麼瀏覽器中可能發生什麼情況”那麼重要。大部分現代瀏覽器都支援ECMAScript 3和ECMAScript 5的一部分(ECMAScript 的版本4從未正式釋出)。
“現代瀏覽器”是你在本書和其他地方常見的詞語。粗略地說,現代瀏覽器支援核心JavaScript、DOM操縱、XmlHttpRequest物件(用於發出Ajax請求)以及基本的CSS。大體上,現代瀏覽器能夠利用當今大部分動態Web技術。這一寬泛的定義包括大部分版本的Firefox、Chrome、Opera和Safari以及IE 6之後的Internet Explorer版本(IE 6多年來已經成為Web開發人員的死敵)。
注意,“現代瀏覽器”這一寬泛的定義並不只是針對JavaScript所下的,還基於其他先進的功能,例如執行DOM操縱的能力。JavaScript常常用來操縱DOM,但是DOM由W3C管理,不同的瀏覽器也以不同的方式支援DOM,這意味著在建立動態網站時,考慮的因素不僅是JavaScript支援的差異,還有DOM支援和CSS支援的差異。(如果你選擇了HTML5,還有HTML5支援的差異)。
2011年8月1日,Google決定支援更有限的一系列現代瀏覽器(這裡指的是對Web應用的支援,Google搜尋引擎當然可以在任何瀏覽器中使用)。Google的條件很簡單—Chrome、Firefox、IE和Safari的當前版本和前一個版本。一方面,這種方法排除了相當一部分Web使用者和一些在其他場合被當作“現代”的瀏覽器。另一方面,這種方法明確了新版本瀏覽器中的變化,而且,放棄舊的版本也有好的理由—使用者也應該不斷更新他們的瀏覽器。
但是,作為一名JavaScript程式設計師,這些列表對你來說意味著什麼呢?知道不同瀏覽器的不同版本所能做的事情對你有很好的啟發,但是並不是JavaScript程式設計的基礎。10年以前,當時還沒有這麼多種瀏覽器,JavaScript程式碼曾經專門用來檢查瀏覽器型別和版本(見前面的程式碼):是Internet Explorer還是Netscape Navigator?是版本4還是5或者5.5?由於實際上有數千種不同的瀏覽器型別和版本(考慮到移動裝置),不可能以特定的瀏覽器和版本為目標。而且,由於許多不同的原因,瀏覽器可能錯誤地標識自己。即使你能克服這兩個負擔,這些程式碼也將在新瀏覽器的下一次釋出、新瀏覽器版本或者具備內部瀏覽器的新裝置推出時過時。
在現在的現代JavaScript中,程式碼不為瀏覽器而為瀏覽器的“能力”而編寫。這一差別看似細微,實際上卻非常重要,是現代JavaScript程式設計基礎的一部分。在本書中,你將學到許多程式設計技術,這些技術所著眼的是“瀏覽器可能做什麼”,而不是“所執行的是什麼瀏覽器”。同樣,在開發程式碼之後,你仍然應該在一定範圍(比如Yahoo!或者Google的列表中)的瀏覽器上進行測試。記住,一個正確設計的網站在不支援的瀏覽器中仍然應該保持完整的功能,只是不能利用JavaScript和其他現代化工具(例如CSS3和HTML5)所新增的動態功能而已。
相關文章
- 《JavaScript設計與開發新思維》——2.7小結JavaScript
- 《移動網頁設計與開發HTML5+CSS3+JavaScript》——1.6 瀏覽器支援網頁HTMLCSSS3JavaScript瀏覽器
- IE 瀏覽器各個版本 JavaScript 支援情況一覽表瀏覽器JavaScript
- getElementsByClassName()方法的瀏覽器支援版本瀏覽器
- JavaScript 判斷瀏覽器的型別和版本JavaScript瀏覽器型別
- 常用JS特性瀏覽器支援版本查詢JS瀏覽器
- Chrome 瀏覽器 131 版本新特性Chrome瀏覽器
- 替代Edge瀏覽器?微軟開發新的瀏覽器:採用Chrome核心瀏覽器微軟Chrome
- Javascript開啟瀏覽器全屏模式JavaScript瀏覽器模式
- IE瀏覽器開發瀏覽器
- 前端開發夢中景象-支援手機上任何移動瀏覽器網頁開發設計除錯前端瀏覽器網頁除錯
- javascript判斷瀏覽器的型別和版本程式碼例項JavaScript瀏覽器型別
- 判斷瀏覽器型別和版本的javascript程式碼例項瀏覽器型別JavaScript
- JavaScript禁止瀏覽器預設行為JavaScript瀏覽器
- javascript如何判斷當前瀏覽器是否支援cookieJavaScript瀏覽器Cookie
- Javascript和CSS瀏覽器相容總結JavaScriptCSS瀏覽器
- JavaScript判斷系統和瀏覽器JavaScript瀏覽器
- iOS開源照片瀏覽器框架SGPhotoBrowser的設計與實現iOS瀏覽器框架
- javascript相容低版本IE瀏覽器的事件物件JavaScript瀏覽器事件物件
- 如何讓低版本IE瀏覽器支援HTML5和CSS3瀏覽器HTMLCSSS3
- 好程式設計師web前端分享JS檢查瀏覽器型別和版本程式設計師Web前端JS瀏覽器型別
- 瀏覽器之爭:程式設計師眼裡瀏覽器的地位 IE:我開了!瀏覽器程式設計師
- 瀏覽器之爭:程式設計師眼裡瀏覽器的地位IE:我開了!瀏覽器程式設計師
- 谷歌瀏覽器禁用JavaScript谷歌瀏覽器JavaScript
- JavaScript瀏覽器事件物件JavaScript瀏覽器事件物件
- JavaScript 瀏覽器事件解析JavaScript瀏覽器事件
- JavaScript 判斷IE瀏覽器的版本包括IE11JavaScript瀏覽器IE11
- onscroll事件的瀏覽器支援事件瀏覽器
- 如何讓瀏覽器支援 import 和export語法瀏覽器ImportExport
- 讓IE低版本瀏覽器也支援placeholder屬性瀏覽器
- Microsoft 開源 Edge 瀏覽器的 javascript 引擎ROS瀏覽器JavaScript
- 關於 Angular 開發時對主流瀏覽器支援的話題Angular瀏覽器
- Brave瀏覽器開始支援區塊鏈IPFS瀏覽器區塊鏈
- IE瀏覽器外掛開發瀏覽器
- UC瀏覽器外掛開發瀏覽器
- google瀏覽器外掛開發Go瀏覽器
- 基於CefSharp開發瀏覽器(八)瀏覽器收藏夾欄瀏覽器
- javascript判斷當前瀏覽器是不是微信瀏覽器JavaScript瀏覽器