php包含条件注释

时间:2011-12-02 13:26:27

标签: php jquery include conditional-comments

我在我的网站上添加了一些jQuery脚本。该脚本不适用于低于IE7的任何内容。现在我想做以下事情:

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

如果浏览器“不低于IE7”,它应该只加载脚本。 但它不起作用。

有没有办法解决这个没有使用基于PHP的浏览器识别?

6 个答案:

答案 0 :(得分:5)

是的,将浏览器识别功能构建到jQuery / javascript中。在javascript中,测试你需要的功能对象,如果它不存在,那么就有代码来处理它。

答案 1 :(得分:0)

可能是开场(没有收盘)?

答案 2 :(得分:0)

第一部分的帮助:它不起作用,因为您不需要(之前的lte,也不需要!。使用

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

进一步阅读:Microsoft's page on IE conditional comments

答案 3 :(得分:0)

另一种选择可以是使用众所周知的ie7.js脚本,它使旧的IE版本更符合“标准”,这肯定会使你的jQuery脚本工作。

你可以找到它here

答案 4 :(得分:0)

您不应该使用浏览器检测。相反,请使用 Feature Detection 来测试您的浏览器是否能够您想要做的事情

答案 5 :(得分:0)

在php中你会做以下其中一个

$browser = get_browser(null, true);
if($browser['browser'] == 'MSIE' && $browser['version'] >= 7) { /*CODE*/

OR

$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 */
}