1
/*------------------------------------*\
    FIXES (IE ONLY)
\*------------------------------------*/

if( preg_match( '/MSIE ([0-8].[0-9]{1,2})/', $_SERVER['HTTP_USER_AGENT'] ) ) {
    wp_enqueue_script( 'respond', ( get_template_directory_uri() . '/assets/scripts/respond.min.js' ), false );
    wp_enqueue_script( 'html5shiv', ( get_template_directory_uri() . '/assets/scripts/html5shiv.js' ), false );
    wp_enqueue_script( 'selectivizr', ( get_template_directory_uri() . '/assets/scripts/selectivizr-min.js' ), array( 'jquery' ) );
}

現在、WordPress で上記のコードを使用して、IE9 で IE を検出しています。仮にHTTP_USER_AGENTが偽装されて表示されたとしても、通常のブラウザの動作を壊すことはないため、このようにしています。その必要はありません。

ブラウザーが互換モード (ブラウザーとドキュメント モード IE8 (またはそれ以下) の両方) にあるかどうかを (PHP で) 検出する方法が必要です。

http://dev.netcoding.net/sustain/

そのサイトを実際の IE8 ブラウザでテストすると、respond.min.js問題なく動作します。しかし、IE9-10 でブラウザ モードとドキュメント モードの両方を変更して IE8 をエミュレートすると、タブがクラッシュします。

respond.min.jsエミュレートされたブラウザではなく、実際の IE8 ブラウザである場合にのみ追加する方法が必要です。

4

3 に答える 3

1

互換モードを無効にすることもできます:

header("X-UA-Compatible: IE=edge");

または HTML ソースで:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
于 2013-06-17T15:42:07.520 に答える