-1

ブラウザのボディ クラスに基づいたショートコードの作業。私がセットアップした方法は、MSIE を除くすべてのブラウザーで機能します。これは完全な条件ステートメントではありませんが、問題をこれに切り分けました。MSIE はこれを乗り越えることができません:

$classes = get_body_class();
if (in_array('msie',$classes)){
    echo 'MSIE';
}

msie を firefox やその他のブラウザー クラスに変更すると、動作します。しかし、MSIE を使用すると、何も返されたりエコーされたりしません。

具体的にはIE10で起こっています。低い値はまだテストしていません。とりわけ、これは次のように生成されますvardump$classesstring(9) "msie ie10"

4

1 に答える 1

2

in_array()部分一致は行いません。したがって、値がmsie ie10あなたが持っているコードである場合、それが見つからない場合は、これを行う必要があります:

$classes = get_body_class();
if (in_array('msie ie10',$classes)){
    echo 'MSIE';
}

部分一致を行う場合の別のオプションは、foreach ループを使用することです。

$classes = get_body_class();
foreach($classes as $class) {
    if(strpos($class,'msie') !== false) {
        echo 'MSIE';
        break;
    }
}
于 2013-10-01T19:31:14.937 に答える