2013-02-09 21 views
3

在使用yep/nope/modernizr.load()加載資源之前,我需要檢查兩個項目的支持。如何去做這件事?modernizr.load()中的兩個Modernizr測試?

並通過兩個測試,而不是一個或另一個,但兩者。

一個是我已添加的自定義測試,另一個是現有測試。

回答

2

Modernizr documentation有你答案:

從文檔兩者...

Modernizr.load是小而簡單,但它可以爲你做相當多的重型起重。當您的腳本依賴多個Modernizr功能測試時,使用Modernizr.load的例子稍微複雜一些。一個好的方法是將多個polyfill腳本合併成一個「oldbrowser」類型的腳本,這樣你就不會一次加載太多的腳本。以下是如何可能的工作:

Modernizr.load([ 
    { 
    test : Modernizr.fontface && Modernizr.canvas && Modernizr.cssgradients, 
    nope : ['presentational-polyfill.js', 'presentational.css'] 
    } 
]); 

所以你看,答案是簡單地把所有你所需要的測試彙集成一個布爾表達式。

我從文檔簡化的例子,事實上,在文檔中給出的例子進入更詳細的,所以不要去閱讀他們以及它可能給你做你的更好的方法之後。

希望有所幫助。

+0

的謝謝,我想我應該更仔細地閱讀文檔。 – IMUXIxD 2013-02-09 17:01:18

1

@Spudley答案是偉大的,但也許它更有幫助一些情況下

Modernizr.load([ 
    { 
     test: Modernizr.input.autofocus || Modernizr.cssanimations, 
    nope: 'jquery.js' 
    }, 
    { 
    test: Modernizr.input.autofocus, 
    nope: 'autofocus.js' 
    }, 
    { 
    test: Modernizr.cssanimations, 
    nope: 'animations.js' 
    } 
    ]);