浏览器版本检测

时间:2009-01-09 10:16:00

标签: javascript jquery browser

我目前的项目中有一个规范要求我们建议用户哪些浏览器最适合使用Web应用程序。如果他们使用的当前浏览器版本不在我们的“理想”浏览器列表中,我们希望显示消息。

检查特定用户浏览器版本的最佳方法是什么。我知道以下使用jQuery,但这对特定版本没有帮助。

$(document).ready(function() {
   var b = '';
   $.each($.browser, function(i, val) {
       if (i=='safari' && val==true) { b = 'safari'; }
       if (i=='opera' && val==true) { b = 'opera'; }
       if (i=='msie' && val==true) { b = 'msie'; }
       if (i=='mozilla' && val==true) {b = 'mozilla'; }
   });

   //Do Something With b, Like $('#dis').html(b);
}); 

我们希望能够说你的浏览器是Firexfox 2或更高版本还是IE6或更高等等?

4 个答案:

答案 0 :(得分:4)

同时检查docs.jquery.com中的$ .browser.version

Firefox 2.x.x可以返回2.0,请查看文档:)

答案 1 :(得分:4)

Here是一个帮助

的JQuery插件

答案 2 :(得分:2)

查看YUI User-Agent Detection

编辑:现在我已经告诉过你了,我只是想确保你知道这通常被认为是反模式,对吧?如果可以,我建议不要做这样的事情,但我意识到这并不总是一种选择。

答案 3 :(得分:0)

Internet Explorer 10及更高版本的行为与IE 9及更低版本不同。使用javascript时,您需要以不同方式处理这些场景。以下代码为我工作:)

    //MSStream object supported only for IE 10 and 11 (hope this will work for above IE 11 too .. )
    var isIE10or11 = window.MSStream;

    //FormData object allow you to send form data as key and value pairs with ajax requests. Supported in modern browsers.
    var isFormDataSupported = (window.FormData !== undefined);

    if(isIE10or11 && isFormDataSupported){
       alert('IE 10 or 11');
    }
    else if(!isIE10or11  && isFormDataSupported){
       alert('HTML 5 browser Excluding IE');
    }
    else{
       //Neither supports MSStream nor FormData object
       alert('IE Version 9 or below');
    }