跨瀏覽器開發應該使用的一些經驗1)一些關於跨瀏覽器/裝置的工具1. modernizr.js 特性檢測器,有就使用原生,沒有就載入polyfill2. polyfill/shim 向後相容的瀏覽器的js補丁,一般和modernizr一起用3. jshint.js js語法檢測器4. Boilerplate 開發的最佳實踐的初始模板5. 閱讀第三方庫關於最低版本支援6. 使用js單元測試,測試目標瀏覽器7. Responsive Design (針對螢幕大小)8. normalize.css 統一瀏覽器基本元素的風格2) 一個策略:另外,我一直說的一個策略:把瀏覽器分兩類,一類是歷史遺留瀏覽器,一類是現代瀏覽器,然後根據這個分類開發兩個版本的網站,然後自己定義那些瀏覽器是歷史遺留版本,凡是歷史遺留版本瀏覽器,統統使用歷史遺留版介面,然後透過通告欄(資訊通知系統)明確告知本版本有些功能不能使用,儘快轉移到現代瀏覽器上。然後現代瀏覽器的網站版本,功能全開,提供最好的使用者體驗。3)最後手段:最後方案,就是直接使用jReject.js這類外掛,彈出有全黑蒙板的對話方塊,告訴使用者這個網站什麼版本的IE/瀏覽器不能用,請使用至少什麼版本的IE,firefox和chrome.(這個是最後手段,以上方案都失效的情況下使用。)4)一個提醒:跨瀏覽器相容問題,過去有,現在有,以後會更麻煩,所以這個問題在你的專案開始前,就必須確定下來最低支援的版本是什麼,然後設計一個對應相容方案。不要等開發完畢了,才告知要必須相容個ie6啥的,那你的專案就有得好改了。5)面向未來:2015年es6就要正式完成了,等es6出來後,如何把es6的javascript向後相容呢?這裡我有個概念,還沒實驗過:1.使用es6編譯器把程式碼匯出成es5程式碼2.使用modernzr檢查瀏覽器是否支援es6,支援用es6程式碼;不支援,用編譯好的es5程式碼並且載入es6shim。3.使用grunt把es6編譯過程完全自動化以上這個方案,應該可以使用es6程式碼去相容所有的瀏覽器了。
跨瀏覽器開發應該使用的一些經驗1)一些關於跨瀏覽器/裝置的工具1. modernizr.js 特性檢測器,有就使用原生,沒有就載入polyfill2. polyfill/shim 向後相容的瀏覽器的js補丁,一般和modernizr一起用3. jshint.js js語法檢測器4. Boilerplate 開發的最佳實踐的初始模板5. 閱讀第三方庫關於最低版本支援6. 使用js單元測試,測試目標瀏覽器7. Responsive Design (針對螢幕大小)8. normalize.css 統一瀏覽器基本元素的風格2) 一個策略:另外,我一直說的一個策略:把瀏覽器分兩類,一類是歷史遺留瀏覽器,一類是現代瀏覽器,然後根據這個分類開發兩個版本的網站,然後自己定義那些瀏覽器是歷史遺留版本,凡是歷史遺留版本瀏覽器,統統使用歷史遺留版介面,然後透過通告欄(資訊通知系統)明確告知本版本有些功能不能使用,儘快轉移到現代瀏覽器上。然後現代瀏覽器的網站版本,功能全開,提供最好的使用者體驗。3)最後手段:最後方案,就是直接使用jReject.js這類外掛,彈出有全黑蒙板的對話方塊,告訴使用者這個網站什麼版本的IE/瀏覽器不能用,請使用至少什麼版本的IE,firefox和chrome.(這個是最後手段,以上方案都失效的情況下使用。)4)一個提醒:跨瀏覽器相容問題,過去有,現在有,以後會更麻煩,所以這個問題在你的專案開始前,就必須確定下來最低支援的版本是什麼,然後設計一個對應相容方案。不要等開發完畢了,才告知要必須相容個ie6啥的,那你的專案就有得好改了。5)面向未來:2015年es6就要正式完成了,等es6出來後,如何把es6的javascript向後相容呢?這裡我有個概念,還沒實驗過:1.使用es6編譯器把程式碼匯出成es5程式碼2.使用modernzr檢查瀏覽器是否支援es6,支援用es6程式碼;不支援,用編譯好的es5程式碼並且載入es6shim。3.使用grunt把es6編譯過程完全自動化以上這個方案,應該可以使用es6程式碼去相容所有的瀏覽器了。