1. 程式人生 > >平穩退化適應低版本瀏覽器

平穩退化適應低版本瀏覽器

一、方法說明

常用相容性解決方案是為寫Hack,通過*等標記出不同的瀏覽器,寫不同的樣式。然而本篇採取的是利用開源的JavaScriptModernizr(官網——https://modernizr.com/)編寫相應的javascript程式碼解決。首先利用Modernizr判斷瀏覽器是否支援某屬性,如果不支援,採取相應的策略。

利用Modernizr的優點(詳見官網):

1)以下是不使用Modernizr通常採取的相容策略,判斷當前瀏覽器是支援當前功能,則執行當前設計,否則採取另外策略。如果瀏覽器支援屬性改變了,那麼我們就可能得回去重構程式碼。而Modernizr是判斷當前瀏覽器是否支援某屬性,支援則執行A
,否則執行B,就算瀏覽器對屬性控制元件等的支援性改變了,我們的程式碼基本不需要修改。
if (browser === "the-one-they-make-you-use-at-work") {

getTheOldLameExperience();

} else {

showOffAwesomeNewFeature();

}

2Modernizr可以根據需要自定義元件,不需要下載整個Modernizr.js,大大縮小了文字大小,能加快檔案載入速度。

Modernizr存在的限制:使用者如果禁止使用javascript使用,那麼Modernizr就無法工作。

二、例項:

IEplaceholder屬性的支援。

程式碼:/website/static/js/global.js(依賴——modernizr-custom.js)

注意事項:inputtype屬性在ff中可以被修改,而在IE中是隻讀屬性無法修改,所以利用建立附加的input解決passwordtype屬性問題。