0

IE8などのポリフィルをロードしたいので、このコードを使用してメディアクエリのサポートをテストしています。

yepnope({
    test : Modernizr.mq('(only all)'),
    nope : ['scripts/respond.js']
});

それは動作します (= Respond.js が他の IE に読み込まれます) が、respond.js が Safari でも読み込まれることを発見しました。

ドキュメントを読んだ後、Safariがサポートしていないある種のメディアクエリがあるため、respond.jsがロードされていると思います。これは本当ですか?この問題を解決するにはどうすればよいですか?

4

2 に答える 2

2

問題は、Safariが特定のメディアクエリをサポートしていないということで(only all)はありませんが、それは有効なメディアクエリではありません。onlyキーワードまたはメディアタイプを括弧で囲まないでくださいall

yepnope({
    test : Modernizr.mq('only all'),
    nope : ['scripts/respond.js']
});
于 2013-03-02T16:17:12.473 に答える
0

私もmodernizrを使用していますが、IE7とIE8のメディアクエリサポートを追加する最も簡単な方法は、ページヘッドでこのようなものを使用することでした。

<!--[if lt IE 9]>
  <script src="js/respond.js"></script>
<![endif]-->

CSSファイルがロードされた後にrespond.jsを呼び出していることを確認してください。

これは私にとってうまく機能しています。

幸運を!

于 2013-03-02T16:14:32.297 に答える