2

紛らわしいタイトルで申し訳ありませんが、どうすればもっとうまく説明できるかわかりませんでした。

とにかく、これが私のウェブサイトCufonで現在使用している「問題」です。これはうまくいきます。ただし、Internet Explorer 8では、非常に遅くなります。そのため、私は使用することにしました:

<![if !(IE 8)]>
<script type="text/javascript" src="js/myriad-pro.cufonfonts.js"></script>
<script type="text/javascript">Cufon.replace('.example1') ('.example2') ('.example3') ('.example4') ('.example5');
</script>
<![endif]>

これはうまく機能しますが、すべてに当てはまるわけではありません。スクリプト自体でCufonを呼び出すスクリプトの一部は機能せず、Cufonは引き続きIE8に表示されます(すべての否定的な結果が表示されます)。

含まれているいくつかのスクリプト/パーツには、次のコードが含まれています。

<?php
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "</script>";
?>

PHPスクリプト内と同じステートメントを作成することは可能ですか?それで、IE8以外のブラウザの場合はCufonをロードしますが、IE8の場合はCufonをロードしませんか?

うまくいけば、誰かが私がここで意味することを理解しているので、私にとって説明するのはちょっと難しいです... :(

4

5 に答える 5

5
<?php
echo "<![if !(IE 8)]>";
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "</script>";
echo "<![endif]>";
?>

それですか?それとも私はあなたの要求を誤解しましたか?

編集: 別の方法は、jQueryを使用していることがわかりますが、jQueryブラウザー検出を使用している可能性があります:

<?php
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "if ( $.browser.msie && $.browser.version <= 8 ) {";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "}";
echo "</script>";
?>

この機能は非推奨であることに注意してください:

このプロパティはすぐに利用できます。したがって、これを使用して$(document).ready()を呼び出すかどうかを決定するのが安全です。$.browserプロパティはjQuery1.3で非推奨になり、その機能はjQueryの将来のリリースでチームがサポートするプラグインに移動される可能性があります。

必要な機能の種類が正確にわかっていて、IE8に実装されていない場合$.supportは、ブラウザーの検出ではなく、機能の検出を目的とした機能を使用することをお勧めします。

于 2012-05-15T09:13:09.080 に答える
2

はい、 HTTP_USER_AGENTを使用できます

$using_ie8 = (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.') !== FALSE);

ただし、これはユーザーが変更できることを認識しています。

IEのすべてのユーザーエージェントのリストは次のとおりです

于 2012-05-15T09:13:21.880 に答える
2

PHPでは、get_browser()を使用して、ブラウザーとそのバージョンを検出できます。

$browser = get_browser(null, true);

これにより、ブラウザ情報を含む配列が返されます。

これにはbrowscap設定が必要になることに注意してください。

于 2012-05-15T09:13:57.677 に答える
0

基本的に、これはゲストのユーザーエージェント[ドキュメント]をフィルタリングすることで実行できます。これはサーバー変数から取得できます。

$ua = $_SERVER['HTTP_USER_AGENT'];

USERエージェントには、ページを開いているゲストの必要な情報がすべて含まれています。私がこれまでに知っているこのテクニックの最も簡単な使用法は次のとおりです。

if (preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT'])) {
    //do something
}
于 2012-05-15T09:12:41.403 に答える
0

条件付きコメントも出力するだけです。

<?php
echo "<![if !(IE 8)]>";
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "</script>";
echo "<![endif]>";
?>
于 2012-05-15T09:13:53.697 に答える