私は自分のサイトにいくつかの jQuery スクリプトを含めました。このスクリプトは、IE7 よりも低いバージョンでは機能しません。今、私は次のことをしたい:
<!--[if !(lt IE 7]>
<?php include 'script.html'; ?>
<![endif]-->
ブラウザが「IE7以上」の場合にのみ、スクリプトをロードする必要があります。しかし、うまくいきません。
PHP ベースのブラウザ認識を使用せずにこれを解決する方法はありますか?
私は自分のサイトにいくつかの jQuery スクリプトを含めました。このスクリプトは、IE7 よりも低いバージョンでは機能しません。今、私は次のことをしたい:
<!--[if !(lt IE 7]>
<?php include 'script.html'; ?>
<![endif]-->
ブラウザが「IE7以上」の場合にのみ、スクリプトをロードする必要があります。しかし、うまくいきません。
PHP ベースのブラウザ認識を使用せずにこれを解決する方法はありますか?
はい、ブラウザ認識を jQuery/javascript に組み込みます。JavaScript で、必要な機能またはオブジェクトをテストし、そこにない場合は、それを処理するコードを用意します。
PHPでは、次のいずれかを実行します
$browser = get_browser(null, true);
if($browser['browser'] == 'MSIE' && $browser['version'] >= 7) { /*CODE*/
また
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$bname = 'Unknown';
$version= "";
if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
{
$bname = 'Internet Explorer';
}
// finally get the correct version number
$known = array('Version', $ub, 'other');
$pattern = '#(?<browser>' . join('|', $known) .
')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
if (!preg_match_all($pattern, $u_agent, $matches)) {
// we have no matching number just continue
}
IEの条件文は、ページがブラウザに送信された後にのみ機能するため、PHPインクルードファイルは機能しません。使用するJSスクリプトファイルをインクルードするには
<!--[if !(lt IE 7]>
<script src='script.js' type='text/javascript'></script>
<![endif]-->
javascriptブラウザの検出には、次のものを使用します。
if(BrowserDetect.browser == "MSIE" && BrowserDetect.version >= '7') {
/* CODE */
}
ブラウザ検出を使用するべきではありません。代わりに、機能検出を使用して、ブラウザが実行したいことを実行できるかどうかをテストします。
オープニング(クロージングがない)でしょうか?
(
最初の部分を手伝ってください: beforelte
も. も必要ないので、うまくいきません!
。使用する
<!--[if gte IE 7]>
<?php include 'script.html'; ?>
<![endif]-->
もう 1 つの方法は、よく知られている ie7.js スクリプトを使用して、古い IE バージョンをより「標準」に準拠させ、jQuery スクリプトが確実に機能するようにすることです。
ここで見つけることができます