做了一套web系统,因为在其他浏览器下会出现问题,因此想做一个友情提醒,让用户尽量使用IE浏览器,其他浏览器出现bug不再负责。关于这点客户方面已经同意。——————————————————————————不过我想知道如何用js判断下浏览器类型,是不是遨游,是不是360浏览器,是不是世界之窗之类的。我在网上查到“如何检测是不是遨游了”,那其他的呢?你知道吗,谢谢~~

解决方案 »

  1.   

    <html><body>
    <script type="text/javascript">
    var browser=navigator.appName
    var b_version=navigator.appVersion
    var version=parseFloat(b_version)document.write("Browser name: "+ browser)
    document.write("<br />")
    document.write("Browser version: "+ version)
    </script>
    </body></html>
      

  2.   

    JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道。我们先来分析一下各种浏览器的特征及其userAgent。IE只有IE支持创建ActiveX控件,因此她有一个其他浏览器没有的东西,就是ActiveXObject函数。只要判断window对象存在ActiveXObject函数,就可以明确判断出当前浏览器是IE。而IE各个版本典型的userAgent如下: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)其中,版本号是MSIE之后的数字。FirefoxFirefox中的DOM元素都有一个getBoxObjectFor函数,用来获取该DOM元素的位置和大小(IE对应的中是 getBoundingClientRect函数)。这是Firefox独有的,判断它即可知道是当前浏览器是Firefox。Firefox几个版本的 userAgent大致如下:Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12其中,版本号是Firefox之后的数字。OperaOpera提供了专门的浏览器标志,就是window.opera属性。Opera典型的userAgent如下: Opera/9.27 (Windows NT 5.2; U; zh-cn)Opera/8.0 (Macintosh; PPC Mac OS X; U; en)Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0其中,版本号是靠近Opera的数字。SafariSafari浏览器中有一个其他浏览器没有的openDatabase函数,可做为判断Safari的标志。Safari典型的userAgent如下:Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3 其版本号是Version之后的数字。ChromeChrome有一个MessageEvent函数,但Firefox也有。不过,好在Chrome并没有Firefox的getBoxObjectFor函数,根据这个条件还是可以准确判断出Chrome浏览器的。目前,Chrome的userAgent是: Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13其中,版本号在Chrome只后的数字。有趣的是,Chrome的userAgent还包含了Safari的特征,也许这就是Chrome可以运行所有Apple浏览器应用的基础吧。只要了解了以上信息,我们就可以根基这些特征来判断浏览器类型及其版本了。我们会将判断的结果保存在Sys名字空间中,成为前端框架的基本标志信息,供今后的程序来读取。如果判断出谋种浏览器,Sys名字空间将有一个该浏览器名称的属性,其值为该浏览器的版本号。例如,如果判断出IE 7.0,则Sys.ie的值为7.0;如果判断出Firefox 3.0,则Sys.firefox的值为3.0。下面是判断浏览器的代码:<script type= "text/javascript" >   
            var  Sys = {};   
            var  ua = navigator.userAgent.toLowerCase();   
            if  (window.ActiveXObject)   
                Sys.ie = ua.match(/msie ([\d.]+)/)[1]   
            else   if  (document.getBoxObjectFor)   
                Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]   
            else   if  (window.MessageEvent && !document.getBoxObjectFor)   
                Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1]   
            else   if  (window.opera)   
                Sys.opera = ua.match(/opera.([\d.]+)/)[1]   
            else   if  (window.openDatabase)   
                Sys.safari = ua.match(/version\/([\d.]+)/)[1];   
               
            //以下进行测试    
            if (Sys.ie) document.write( 'IE: ' +Sys.ie);   
            if (Sys.firefox) document.write( 'Firefox: ' +Sys.firefox);   
            if (Sys.chrome) document.write( 'Chrome: ' +Sys.chrome);   
            if (Sys.opera) document.write( 'Opera: ' +Sys.opera);   
            if (Sys.safari) document.write( 'Safari: ' +Sys.safari);   
        </script>   
      

  3.   

    要判断傲游还是360,上面的都不够的。
    再加语句
    比如傲游
    var v = external.max_language_id;  
    if(v!=undefined){alert(\"遨游\" );  360的不清楚,自己搜素一下
      

  4.   

    分辨浏览器的代码网上有很多.不过楼主可注意了.跟客户约定不能只约定到ie.一定要把版本都约定好了.ie8和ie7有很多的不同.不提前说明,项目完成后会有很多麻烦!
      

  5.   


    哥们,你这个代码不管用呀,在遨游下,在360浏览器下,全是显示的“Microsoft Internet Explorer
    ”我不仅向检测出火狐,还想区别遨游,和ie,虽然他们的内核都一样。至于客户约定,已经谈妥了。这个无需担忧了。谢谢