繁体   English   中英

有没有办法使用 <![if !(IE 8)]> 在PHP内?

[英]Is there a way to use <![if !(IE 8)]> within PHP?

对不起令人困惑的标题,我不知道如何更好地描述它。

无论如何,这是我目前用于我的网站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?

希望有人理解我在这里的意思,因为有点难以为我解释...... :(

<?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 ,这是用于功能检测而不是浏览器检测。

是的,您可以使用HTTP_USER_AGENT

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

但我们知道这可以由用户改变。

以下是IE的所有用户代理列表

在PHP中,您可以使用get_browser()来检测浏览器及其版本。

$browser = get_browser(null, true);

这应该返回一个包含浏览器信息的数组。

请注意,这将需要browscap设置。

基本上,您可以通过过滤访客的USER AGENT [docs]来完成此操作。 您可以从服务器变量获取此信息。

$ua = $_SERVER['HTTP_USER_AGENT'];

USER代理包含打开该页面的访客的所有必要信息。 到目前为止,我所知道的这种技术最简单的用法是:

if (preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT'])) {
    //do something
}

只需打印条件注释;

<?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]>";
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM