1

私は自分のサイトにいくつかの jQuery スクリプトを含めました。このスクリプトは、IE7 よりも低いバージョンでは機能しません。今、私は次のことをしたい:

<!--[if !(lt IE 7]>
    <?php include 'script.html'; ?>
<![endif]-->

ブラウザが「IE7以上」の場合にのみ、スクリプトをロードする必要があります。しかし、うまくいきません。

PHP ベースのブラウザ認識を使用せずにこれを解決する方法はありますか?

4

6 に答える 6

5

はい、ブラウザ認識を jQuery/javascript に組み込みます。JavaScript で、必要な機能またはオブジェクトをテストし、そこにない場合は、それを処理するコードを用意します。

于 2011-12-02T13:28:22.910 に答える
0

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 */
}
于 2011-12-02T13:36:18.220 に答える
0

ブラウザ検出を使用するべきではありません。代わりに、機能検出を使用して、ブラウザが実行したいことを実行できるかどうかをテストします

于 2011-12-02T13:34:13.393 に答える
0

オープニング(クロージングがない)でしょうか?

于 2011-12-02T13:29:19.693 に答える
0

(最初の部分を手伝ってください: beforelteも. も必要ないので、うまくいきません!。使用する

<!--[if gte IE 7]>
  <?php include 'script.html'; ?>
<![endif]-->

さらに読む: IE 条件付きコメントに関する Microsoft のページ

于 2011-12-02T13:29:19.693 に答える
0

もう 1 つの方法は、よく知られている ie7.js スクリプトを使用して、古い IE バージョンをより「標準」に準拠させ、jQuery スクリプトが確実に機能するようにすることです。

ここで見つけることができます

于 2011-12-02T13:30:32.907 に答える