2013-01-18 3 views
8

私はenquire.jsをレガシーブラウザ(つまり、6-9)で動作させる最良の方法を理解しようとしています。お問い合わせのサイトでは、modernizrを使用してmatchMediaのサポートを確認し、サポートされていない場合はpolyfillを読み込みます。enquire.jsレガシーサポート

Modernizr.load([ 
    //first test need for polyfill 
    { 
     test: window.matchMedia, 
     nope: "/path/to/polyfill.js" 
    }, 

    //and then load enquire 
    "/path/to/enquire.js" 
]); 

それが示唆しているpolyfillを見ると、ModernizrにはModernizr.mq()が既に含まれていると言われています。

Used in: 
    Respond.js 
    FormFactor 
    Modernizr 
https://github.com/paulirish/matchMedia.js/ 

私はこれを調べましたが、この作業を行う方法が見つかりませんでした。

答えて

20

お問い合わせはこちら!

したがって、matchMediaポリフィルについては常に混乱があります。レガシーブラウザにCSS3メディアクエリサポートをポリフィルすることはありません。 CSS3のメディアクエリをサポートしているが、このAPIを提供していないブラウザ用のmatchMedia javascript APIは、polyfillです。 support for matchMediaについてはこちらをご覧ください。たとえば、IE9はCSS3メディアクエリをサポートしていますが、matchMedia JS APIはありません。これはPaul IrishのmatchMedia polyfillのターゲットです。

完全な機能を備えたポリフィルを探している場合、旧式のブラウザに適した適切なメディアクエリが得られるので、David Knightのメディアマッチを使用することをおすすめできますか?私は彼と協力してこれをテストし、IE6に至るまでサポートを証明しました - それは魅力的です:)ここにはhttps://github.com/weblinc/media-matchがあります。 Modernizrで提案したように条件付きでロードすることができます。適切な部分を置き換えてください。

今後のご質問にお答えいただければ幸いです。

+0

ありがとうございます。私はポールアイルランドを代わりに使ってしまった。私は応答スタイルのためにpolyfillを提供しているわけではないので、条件付きでメディアクエリに基づいてJavaScriptをロードする必要はありません。私はちょっとだけそれを考えなければなりませんでした。助けてくれてありがとう! – Dan

+0

@WickyNilliamsこれはIEでの私の問題を修正しました。どうして他の作者があなたのおかげで半分の役に立たないのですか –

+0

私はしばらく文書を更新しています。それは例、より良い説明とすべての機能のシナリオベースの散歩を持っています:)あなたの目を剥がして、それはほとんど終わった – WickyNilliams