【问题标题】:js browser detection for IE用于 IE 的 js 浏览器检测
【发布时间】:2010-11-09 22:22:00
【问题描述】:

我的问题如下

是否有可靠的javascript代码来检测浏览器是否为IE(我不关心其他人)

我找到了some script,但它在 FF 中生成了一个未定义的错误。

我编辑了我的问题,因为我在这个论坛上找到了一些正则表达式服务器端解决方案 现在已经足够了。

谢谢,理查德

【问题讨论】:

  • 你用谷歌搜索过吗?这种东西很容易找到。也许您可以在这里发布您的 JS 代码,我们可以找出它在 FF 中不起作用的原因。
  • @Aditya Sehgal - 这是一个该死的好问题,即使在 Google 上很容易找到它,它也应该在 stackoverflow.com 中占有一席之地
  • 在这里查看这个答案,它的答案是:stackoverflow.com/a/7690750/104380

标签: javascript internet-explorer browser browser-detection


【解决方案1】:

navigator.userAgent 可以使用。以下检测浏览器是否为 IE 版本

var browserIEInfo = navigator.userAgent.match(/MSIE (([0-9]+)(\.[0-9]+)?)/);
if (browserIEInfo === null || parseInt(browserIEInfo[2]) > 9){
    // code for non IE or for IE version > 9
}

// code for IE <= 9 

【讨论】:

    【解决方案2】:
    <script type="text/javascript">
    function getInternetExplorerVersion()
    
    {
      var rv = -1; 
      if (navigator.appName == 'Microsoft Internet Explorer')
      {
        var ua = navigator.userAgent;
        var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
          rv = parseFloat( RegExp.$1 );
      }
      return rv;
    }
    function checkVersion()
    {
      var msg = "You're not using Internet Explorer.";
      var ver = getInternetExplorerVersion();
    
      if ( ver > -1 )
      {
        if ( ver >= 8.0 ) 
          msg = "You're using a recent copy of Internet Explorer."
        else
          msg = "You should upgrade your copy of Internet Explorer.";
      }
      alert( msg );
    }
    </script>
    

    【讨论】:

      【解决方案3】:

      您可以使用 Javascript 或 jQuery 检查浏览器。 Javascript 提供了 Navigator 对象,您可以使用该对象进行检查:

      function getBrowserName()
        {
          if(navigator.appName=="Microsoft Internet Explorer") {
              alert("This is " + navigator.appName + " Browser");
        }
      }
      

      您可以在这里查看示例:http://www.codegateway.com/2012/09/detect-ie-browser-javascript.html

      并且 jQuery 有浏览器对象,我们可以使用它来检测浏览器,例如:

      function getBrowser()
       {
         if ($.browser.msie) {
              alert('IE');
          }
       }
      

      在此处查看示例:http://www.codegateway.com/2012/09/detect-ie-browser-jquery.html

      【讨论】:

        【解决方案4】:

        您可以找到here 使用条件标签进行 IE 检测的非常有用的技术。

        <!DOCTYPE your favorite doc type> 
             <html> 
               <head>...</head>  
               <body>  
                  <!--[if IE]>  
                          <div id="IEroot">  
                  <![endif]-->  
                           <p id="IE">This browser is IE.</p>  
                           <p id="notIE">This browser is not IE.</p>  
                  <!--[if IE]>  
                          </div>  
                  <![endif]-->  
              </body> 
            </html> 
        

        您可以使用它并在它之间放置脚本标签来定义仅适用于 IE 的 Javascript 操作。

        【讨论】:

        • 请注意,条件 cmets 正在从 IE10+ 中删除
        • 请注意发布日期,两年前。我猜甚至没有 IE8,或者它刚刚发布。
        • 是的,这仍然是一个非常有用的答案,我只是向将来可能会使用此代码的任何人指出它:)
        【解决方案5】:

        使用

        navigator

        对象

        navigator.appName
        

        将给出浏览器名称和

        navigator.appVersion
        

        会给出浏览器版本。

        这里列出了另一个

        Browser detect

        【讨论】:

        • 谢谢,这实际上是我找到的第一个脚本。我编辑了我的问题
        猜你喜欢
        • 2011-03-14
        • 2016-01-14
        • 1970-01-01
        • 1970-01-01
        • 2015-09-08
        • 2012-02-14
        • 2012-08-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多