4

Enquire.js をレガシー ブラウザで動作させようとしています。ドキュメントのディープサポートメソッドを使用しています:

Modernizr.load([
    {
        test: window.matchMedia,
        nope: "media.match.min.js"
    },

    "enquire-2.0.0.min.js",
    "plugins.js", // jquery plugins
    "main.js" // enquire-triggered functions + general code
]);

これに関する問題は、initializr.com の Modernizr+Respond を使用しているため、テストは常にパスすることです。これにより、IE8/9 の enquire.js で JS エラーが発生します。

Respond.js を削除してプレーンな Modernizr を使用するだけで、テストが失敗し、Media.match が読み込まれ、JS エラーが解決されます。ただし、IE8 では Media Query のサポートが失われます。

すべてを連携させるための最良の方法は何ですか? Modernizr経由でMedia.matchと同時にrespond.jsを読み込んでみました。最初にロードすると、以前と同じ JS エラーが表示されます。2 番目に読み込むと、メディア クエリが機能しません。また、Media.match の INSTEAD をロードしようとしましたが、JS エラーが返されます。

ありがとう。

編集:

これを投稿した直後に、inquire 1.5.6 にロールバックし、Respond.js と shouldDegrade オプションを使用し、Modernizr テストは使用しませんでした。IE8/9 では JS エラーは発生せず、これまでのところすべて正常に動作しているようです。

これを 2.0 で動作させる方法があるかどうか、または今のところ 1.5.6 に固執する必要があるかどうかを知りたいですか?

4

3 に答える 3

4

Inquire v2.0.2 でも同じ問題に遭遇しました。私の回避策は、respond.js から matchMedia のインクルードを削除し、respond.js をロードした後に media.match と enquire.js をロードすることでした。これはまだ modernizr でテストしていませんが、メディア クエリのサポートと enquire.js を IE7 と 8 で JS エラーなしで動作させることができました。

于 2013-08-20T19:31:54.803 に答える