如何使用PHP定位IE 10及更高版本?

时间:2013-10-02 16:17:02

标签: php internet-explorer conditional-comments

我正在使用以下代码向网页添加一些条件样式(我使用IE 9的传统条件注释和向下):

<?php if (stripos($_SERVER['HTTP_USER_AGENT'], 'MSIE 10')) { ?>
  <link href="/css/ie9.css" media="screen" rel="stylesheet" />
<?php } ?>

问题是样式表仍未应用于某些版本的IE 10,绝对不是IE 11预览版。有没有办法定位所有版本的IE 10及以上版本?我只看过使用[1-9]的格式,但[10-11]似乎没有用。

1 个答案:

答案 0 :(得分:0)

在您的用户代理检查中放置一些代码以查看是否有任何返回,它可能返回“MSIE 10”之外的其他内容,IE 10+可能只返回IE或其他声明。我一直在使用javascript做同样的事情。 (尽管纯粹主义者使用条件评论的猫叫声)

这是我的javascript:

    function isIE(ver) 
    {
      var myNav = navigator.userAgent.toLowerCase();
      var IEVer = parseInt(myNav.split('msie')[1]);
      if ((typeof IEVer == "undefined") || (IEVer == null)) {
         IEVer = 0;
      }
      if IEVer = ver {
        return true;
      } 
      else {
        return false;
      }
    }

然后在我添加样式表的位置执行以下操作:

 if isIE(10) { do something }

更新:根据Microsoft的说法,您应该使用功能检测而不是浏览器检测:http://msdn.microsoft.com/en-us/library/ie/hh273397%28v=vs.85%29.aspx