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 脚本中做出与 with 相同的语句?所以如果是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 属性在 jQuery 1.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

基本上,您可以通过过滤来宾的 USER AGENT [docs]来做到这一点。您可以从服务器变量中获取此信息。

$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 回答