IE兼容问题

获取浏览器真实版本

//window.navigator.userAgent在IE8下,它是4.0,在IE9下是 5.0,在IE10下是6.0,在IE11下是7.0.

设置兼容性后的版本
function getVersion(){
    var ua = window.navigator.userAgent;
    var isIE = window.ActiveXObject != undefined && ua.indexOf("MSIE") != -1;
    var isChrome = ua.indexOf("Chrome") && window.chrome;
    var li="";
    if (isIE) {
        var userAgent = navigator.userAgent.toLowerCase();
        if (userAgent.match(/msie ([\d.]+)/) != null) {
            //ie6--ie9
            uaMatch = userAgent.match(/msie ([\d.]+)/);
            li = 'IE' + uaMatch[1];
        } else if (userAgent.match(/(trident)\/([\w.]+)/)) {
            uaMatch = userAgent.match(/trident\/([\w.]+)/);
            switch (uaMatch[1]) {
                case "4.0":
                    li = "IE8";
                    break;
                case "5.0":
                    li = "IE9";
                    break;
                case "6.0":
                    li = "IE10";
                    break;
                case "7.0":
                    li = "IE11";
                    break;
                default:
                    li = "undefined";
            }
        }
    }else if(isChrome){
        li="Chrome";
    }
    return li;
}
浏览器其他信息
<INPUT id="Button1" type="button" value="浏览器所有信息" name="Button1" language=javascript οnclick="allinfo()">

<INPUT id="Button1" type="button" value="客户端pc信息" name="Button1" language=javascript οnclick="pcInfo()">
<script id=clientEventHandlersJS language=javascript>
    /******************************************下为浏览器信息************************************************/
    //获取浏览器相关信息
    function allinfo() {
        var appName = navigator.appName; //浏览器的正式名称
        var appVersion = navigator.appVersion; //浏览器的版本号
        var cookieEnabled = navigator.cookieEnabled; // 返回用户浏览器是否启用了cookie
        var cpuClass = navigator.cpuClass; //返回用户计算机的cpu的型号,通常intel芯片返回"x86"(火狐没有)


        var mimeType = navigator.mimeTypes; // 浏览器支持的所有MIME类型的数组
        var platform = navigator.platform; // 浏览器正在运行的操作系统平台,包括Win16(windows3.x)
        //   Win32(windows98,Me,NT,2000,xp),Mac68K(Macintosh 680x0)
        //     和MacPPC(Macintosh PowerPC)
        var plugins = navigator.plugins; //  安装在浏览器上的所有插件的数组
        var userLanguage = navigator.userLanguage; // 用户在自己的操作系统上设置的语言(火狐没有)
        var userAgent = navigator.userAgent; //包含以下属性中所有或一部分的字符串:appCodeName,appName,appVersion,language,platform
        var systemLanguage = navigator.systemLanguage; // 用户操作系统支持的默认语言(火狐没有)


        var info = "<table border=1>";
        var type = "";
        if (isIe()) {
            type = "IE浏览器";
        } else if (isFireFox()) {
            type = "火狐浏览器";
        }
        info += "<tr><td>浏览器类型:</td><td>" + type + "</td></tr>";


        info += "<tr><td>浏览器属性信息:</td><td>" + userAgent + "</td></tr>";
        info += "<tr><td>浏览器的正式名称:</td><td>" + appName + "</td></tr>";
        info += "<tr><td>浏览器的版本号:</td><td>" + appVersion + "</td></tr>";
        info += "<tr><td>浏览器的是否启用了cookie:</td><td>" + cookieEnabled + "</td></tr>";
        info += "<tr><td>cpu等级:</td><td>" + cpuClass + "</td></tr>";
        info += "<tr><td>浏览器的MIME类型:</td><td>" + mimeType.length + "</td></tr>";
        info += "<tr><td>系统平台:</td><td>" + platform + "</td></tr>";
        info += "<tr><td>安装的插件:</td><td>" + plugins + "</td></tr>";
        info += "<tr><td>插件的数量:</td><td>" + plugins.length + "</td></tr>";
        info += "<tr><td>插件的名称:</td><td>" + getPluginName() + "</td></tr>";
        info += "<tr><td>用户设置的操作系统语言:</td><td>" + userLanguage + "</td></tr>";
        info += "<tr><td>操作系统支持的默认语言:</td><td>" + systemLanguage + "</td></tr>";
        info += "<tr><td>Director:</td><td>" + checkePlugs("Director") + "</td></tr>";
        info += "<tr><td>javaEnabled:</td><td>" + navigator.javaEnabled() + "</td></tr>";
        info += "<tr><td>是否有quickTime:</td><td>" + checkePlugs("QuickTime") + "</td></tr>";
        info += "<tr><td>flash插件情况:</td><td>" + checkePlugs('Shockwave Flash') + "</td></tr>";
        info += "<tr><td>是否有MediaPlayer:</td><td>" + checkePlugs("MediaPlayer") + "</td></tr>";
        info += "<tr><td>是否有realPlayer:</td><td>" + checkePlugs("RealPlayer") + "</td></tr>";
        info += "<tr><td>屏幕分辨率高度:</td><td>" + window.screen.height + "</td></tr>";
        info += "<tr><td>屏幕分辨率宽度:</td><td>" + window.screen.width + "</td></tr>";
        info += "<tr><td>颜色质量:</td><td>" + window.screen.colorDepth + "位</td></tr>";
        info += "<tr><td>像素:</td><td>" + window.screen.deviceXDPI + "像素/英寸</td></tr>";
        info += "<tr><td>字体是否平滑:</td><td>" + window.screen.fontSmoothingEnabled + "</td></tr>";
        //info += "<tr><td>规定浏览器是否启用数据污点:</td><td>" + navigator.taintEnabled() + "</td></tr>";
        info += "</table>";
        document.getElementById("elInfo").innerHTML = info;
        return info;


        //director


        var appCodeName = navigator.appCodeName; //与浏览器相关的内部代码名
        var appMinorVersion = navigator.appMinorVersion; //辅版本号(通常应用于浏览器的补丁或服务包)


        var language = navigator.language; //浏览器支持的语言 (IE没有)


        var onLine = navigator.onLine; //返回浏览器是否处于在线模式(IE4以上版本)


        var opsProfile = navigator.opsProfile; // 未定义   (IE、火狐没有)


        var oscpu = navigator.oscpu; //浏览器正在运行的操作系统,其中可能有CPU的信息(IE没有)


        var product = navigator.product; // 浏览器的产品名(IE没有)


        var productSub = navigator.productSub; //关于浏览器更多信息(IE没有)


        var securityPolicy = navigator.securityPolicy; // 浏览器支持的加密类型(IE没有)


        var userProfile = navigator.userProfile; //  返回一个UserProfile对象,它存储用户的个人信息(火狐没有)


        var vender = navigator.vender; // 浏览器厂商名称(IE、火狐没有)


        var vendorSub = navigator.vendorSub; // 关于浏览器厂商更多的信息


    }
    //获取插件所有的名称
    function getPluginName() {
        var info = "";
        var plugins = navigator.plugins;
        if (plugins.length > 0) {
            for (i = 0; i < navigator.plugins.length; i++) {
                info += navigator.plugins[i].name + ";";
            }
        }
        return info;
    }
    //检查是否安装了某插件,如果安装了返回版本号
    function checkePlugs(pluginname) {
        var f = "-"
        var plugins = navigator.plugins;
        if (plugins.length > 0) {
            for (i = 0; i < navigator.plugins.length; i++) {
                if (navigator.plugins[i].name.indexOf(pluginname) >= 0) {
                    f = navigator.plugins[i].description.split(pluginname)[1];
                    return f;
                    break;
                }
            }
        }
        return false;
    }
    //判断是否IE
    function isIe() {
        var i = navigator.userAgent.toLowerCase().indexOf("msie");
        return i >= 0;
    }
    //判断是否firefox
    function isFireFox() {
        var i = navigator.userAgent.toLowerCase().indexOf("firefox");
        return i >= 0;
    }










    /******************************************以上为浏览器信息,以下为pc信息************************************************/
    var locator = new ActiveXObject("WbemScripting.SWbemLocator");
    var service = locator.ConnectServer(".");


    function cpuInfo() { //CPU 信息
        var properties = service.ExecQuery("SELECT * FROM Win32_Processor");
        var e = new Enumerator(properties);
        var info = "<table border=1>";
        info += "<tr  bgcolor='#CDEDED' style='font-weight: bold;' ><td width='450' >CPU 信息</td></tr>";
        for (; !e.atEnd(); e.moveNext()) {
            var p = e.item();
            info += "<tr style='color: red'><td >CPU序列号:" + p.ProcessorID + "</td></tr>";
            info += "<tr><td >" + p.Caption + "</td></tr>";
            info += "<tr><td >CPU编号:" + p.DeviceID + "</td></tr>";
            info += "<tr><td >CPU型号:" + p.Name + "</td></tr>";
            info += "<tr><td >CPU状态:" + p.CpuStatus + "</td></tr>";
            info += "<tr><td >CPU可用性:" + p.Availability + "</td></tr>";
            info += "<tr><td >CUP Level:" + p.Level + "</td></tr>";
            info += "<tr><td >主机名称:" + p.SystemName + "</td></tr>";
            info += "<tr><td >Processor Type:" + p.ProcessorType + "</td></tr>";
        }
        info += "</table>";
        return info;
    }


    function softDisk() { //软盘信息
        var properties = service.ExecQuery("SELECT * FROM Win32_FloppyDrive");
        var e = new Enumerator(properties);
        var info = "<table border=1>";
        info += "<tr  bgcolor='#CDEDED' style='font-weight: bold;' ><td width='450'>软盘信息</td></tr>";
        for (; !e.atEnd(); e.moveNext()) {
            var p = e.item();
            info += "<tr><td >" + p.Description + "</td></tr>";
            info += "<tr><td >" + p.DeviceID + "</td></tr>";
            info += "<tr><td >" + p.Status + "</td></tr>";
            info += "<tr><td >" + p.Manufacuturer + "</td></tr>";
        }
        info += "</table>";
        return info;
    }


    function RomInfo() { //CD-ROM 信息
        var properties = service.ExecQuery("SELECT * FROM Win32_CDROMDrive");
        var e = new Enumerator(properties);
        var info = "<table border=1>";
        info += "<tr bgcolor='#CDEDED' style='font-weight: bold;'><td width='450' >CD-ROM 信息 </td></tr>";
        for (; !e.atEnd(); e.moveNext()) {
            var p = e.item();
            info += "<tr><td >驱动器名称:" + p.Caption + "</td></tr>";
            info += "<tr><td >描述:" + p.Description + "</td></tr>";
            info += "<tr><td >盘符:" + p.Drive + "</td></tr>";
            info += "<tr><td >驱动器状态:" + p.Status + "</td></tr>";
            info += "<tr><td >是否在使用:" + p.MediaLoaded + "</td></tr>";
        }
        info += "</table>";
        return info;
    }


    function keyBoardInfo() { //键盘信息
        var properties = service.ExecQuery("SELECT * FROM Win32_Keyboard");
        var e = new Enumerator(properties);
        var info = "<table border=1>";
        info += "<tr  bgcolor='#CDEDED' style='font-weight: bold;'><td width='450'>键盘信息 </td></tr>";
        for (; !e.atEnd(); e.moveNext()) {
            var p = e.item();
            info += "<tr><td >键盘描述:" + p.Description + "</td></tr>";
            info += "<tr><td >键盘名称:" + p.Name + "</td></tr>";
            info += "<tr><td >键盘状态:" + p.Status + "</td></tr>";
        }
        info += "</table>";
        return info;
    }


    function mainBoard() { //主板信息
        var properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard");
        var e = new Enumerator(properties);
        var info = "<table border=1>";
        info += "<tr bgcolor='#CDEDED' style='font-weight: bold;'><td width='450'>主板信息 </td></tr>";
        for (; !e.atEnd(); e.moveNext()) {
            var p = e.item();
            info += "<tr style='color: red'><td >主板ID:" + p.SerialNumber + "</td></tr>";
            info += "<tr><td >" + p.HostingBoard + "</td></tr>";
            info += "<tr><td >制造商:" + p.Manufacturer + "</td></tr>";
            info += "<tr><td >是否开启:" + p.PoweredOn + "</td></tr>";
            info += "<tr><td >型号:" + p.Product + "</td></tr>";
            info += "<tr><td >版本:" + p.Version + "</td></tr>";
        }
        info += "</table>";
        return info;
    }


    function disk() { //硬盘序列号 信息
        var properties = service.ExecQuery("SELECT * FROM Win32_DiskDrive");
        var e = new Enumerator(properties);
        var info = "<table border=1>";
        info += "<tr bgcolor='#CDEDED' style='font-weight: bold;' ><td width='450'>硬盘信息 </td></tr>";
        for (; !e.atEnd(); e.moveNext()) {
            var p = e.item();
            info += "<tr style='color: red'><td >硬盘序列号:" + p.signature + "</td></tr>";
        }
        info += "</table>";
        return info;
    }
    //获取Ram信息
    function raminfo() {
        var system = new Enumerator(service.ExecQuery("SELECT * FROM Win32_ComputerSystem")).item();


        var physicMenCap = Math.ceil(system.TotalPhysicalMemory / 1024 / 1024);
        //内存信息
        var memory = new Enumerator(service.ExecQuery("SELECT * FROM Win32_PhysicalMemory"));
        for (var mem = [], i = 0; !memory.atEnd(); memory.moveNext()) {
            mem[i++] = {
                cap: memory.item().Capacity / 1024 / 1024,
                speed: memory.item().Speed
            };
        }


        var info = "<table border=1>";
        info += "<tr bgcolor='#CDEDED' style='font-weight: bold;' ><td width='450'>内存信息 </td></tr>";
        info += "<tr style='color: red'><td >内存总量:" + (mem[0].cap + mem[1].cap) + "M</td></tr>";
        info += "<tr style='color: red'><td >可用物理内存:" + physicMenCap + "M</td></tr>";
        info += "</table>";
        return info;
    }


    //获取网络连接信息
    function ipinfo() {


        var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE");
        var e = new Enumerator(properties);
        var info = "<table border=1>";
        info += "<tr bgcolor='#CDEDED' style='font-weight: bold;' ><td width='450'>网络连接信息:</td></tr>";
        var i = 1;
        for (; !e.atEnd(); e.moveNext()) {
            var p = e.item();
            info += "<tr style='color: red'><td >MAC地址" + i + ":" + p.MACAddress + "</td></tr>";
            info += "<tr style='color: red'><td >IP地址" + i + ":" + p.IPAddress(0) + "</td></tr>";
            i++;
        }
        info += "</table>";
        return info;
    }


    function pcInfo() { //所有信息


        var info = cpuInfo();
        info += disk();
        info += raminfo();
        info += mainBoard();
        info += ipinfo();
        info += keyBoardInfo();
        info += RomInfo();
        info += softDisk();


        document.getElementById('elInfo').innerHTML = info;
        return info;
    }




    /******************************************以上为pc信息************************************************/
</script>
<script type="text/javascript">
    var userAgent=window.navigator.userAgent,
        rMsie=/(msie\s|trident.*rv:)([\w.]+)/,
        rFirefox=/(firefox)\/([\w.]+)/,
        rOpera=/(opera).+version\/([\w.]+)/,
        rChrome=/(chrome)\/([\w.]+)/,
        rSafari=/version\/([\w.]+).*(safari)/;
    function uaMatch(ua)
    {
        var match=rMsie.exec(ua);
        if(match != null)
        {
            return {browser:"IE",version:match[2] || "0"};
        }
        var match=rFirefox.exec(ua);
        if(match != null)
        {
            return {browser:match[1] || "",version:match[2] || "0"};
        }
        var match=rOpera.exec(ua);
        if(match != null)
        {
            return {browser:match[1] || "",version:match[2] || "0"};
        }
        var match=rChrome.exec(ua);
        if(match != null)
        {
            return {browser:match[1] || "",version:match[2] || "0"};
        }
        var match=rSafari.exec(ua);
        if(match != null)
        {
            return {browser:match[2] || "",version:match[1] || "0"};
        }
        if(match != null)
        {
            return {browser:"",version:"0"};
        }
    }
    function initw()
    {
        var browser="";
        var version="";
        var browserMatch=uaMatch(userAgent.toLowerCase());
        if(browserMatch.browser)
        {
            browser=browserMatch.browser;
            version=browserMatch.version;
        }
        alert(browser+"  "+version);
    }
</script>


判断浏览器类型及版本
 function getBrowser(){
                var document = window.document,
                    navigator = window.navigator,
                    agent = navigator.userAgent.toLowerCase(),
                    //IE8+支持.返回浏览器渲染当前文档所用的模式
                    //IE6,IE7:undefined.IE8:8(兼容模式返回7).IE9:9(兼容模式返回7||8)
                    //IE10:10(兼容模式7||8||9)
                    IEMode = document.documentMode,
                    //chorme
                    chrome = window.chrome || false ,
                    System = {
                        //user-agent
                        agent : agent,
                        //是否为IE
                  // isIE : /msie/.test(agent),
//                isIE:(window.ActiveXObject != undefined && ua.indexOf("MSIE") != -1)||(!!window.ActiveXObject || "ActiveXObject" in window),
                        //Gecko内核
                        isGecko: agent.indexOf( "gecko" )> 0 && agent.indexOf( "like gecko" )< 0 ,
                        //webkit内核
                        isWebkit: agent.indexOf( "webkit" )> 0 ,
                        //是否为标准模式
                        isStrict: document.compatMode === "CSS1Compat" ,
                        //是否支持subtitle
                        supportSubTitle:function(){
                            return "track" in document.createElement( "track" );
                        },
                        //是否支持scoped
                        supportScope:function(){
                            return "scoped" in document.createElement( "style" );
                        },
                        //获取IE的版本号
                        ieVersion:function(){
                            try {
                                return agent.match(/msie ([\d.]+)/)[ 1 ] || 0 ;
                            } catch (e) {
                                console.log( "error" );
                                return IEMode;
                            }
                        },
                        //Opera版本号
                        operaVersion:function(){
                            try {
                                if (window.opera) {
                                    return agent.match(/opera.([\d.]+)/)[ 1 ];
                                } else if (agent.indexOf( "opr" ) > 0 ) {
                                    return agent.match(/opr\/([\d.]+)/)[ 1 ];
                                }
                            } catch (e) {
                                console.log( "error" );
                                return 0 ;
                            }
                        },
                        //描述:version过滤.如31.0.252.152 只保留31.0
                        versionFilter:function(){
                            if (arguments.length === 1 && typeof arguments[ 0 ] === "string" ) {
                                var version = arguments[ 0 ];
                                start = version.indexOf( "." );
                                if (start> 0 ){
                                    end = version.indexOf( "." ,start+ 1 );
                                    if (end !== - 1 ) {
                                        return version.substr( 0 ,end);
                                    }
                                }
                                return version;
                            } else if (arguments.length === 1 ) {
                                return arguments[ 0 ];
                            }
                            return 0 ;
                        }
                    };

                try {
                    //浏览器类型(IE、Opera、Chrome、Safari、Firefox)
                    System.type = System.isIE? "IE" :
                        window.opera || (agent.indexOf( "opr" ) > 0 )? "Opera" :
                            (agent.indexOf( "chrome" )> 0 )? "Chrome" :
                                //safari也提供了专门的判定方式
                                window.openDatabase? "Safari" :
                                    (agent.indexOf( "firefox" )> 0 )? "Firefox":'unknow' ;

                    //版本号
                    System.version = (System.type === "IE" )?System.ieVersion():
                        (System.type === "Firefox" )?agent.match(/firefox\/([\d.]+)/)[ 1 ]:
                            (System.type === "Chrome" )?agent.match(/chrome\/([\d.]+)/)[ 1 ]:
                                (System.type === "Opera" )?System.operaVersion():
                                    (System.type === "Safari" )?agent.match(/version\/([\d.]+)/)[ 1 ]:
                                        "0" ;

                    //浏览器外壳
                    System.shell=function(){
                        //遨游浏览器
                        if (agent.indexOf( "maxthon" ) > 0 ) {
                            System.version = agent.match(/maxthon\/([\d.]+)/)[ 1 ] || System.version ;
                            return "傲游浏览器" ;
                        }
                        //QQ浏览器
                        if (agent.indexOf( "qqbrowser" ) > 0 ) {
                            System.version = agent.match(/qqbrowser\/([\d.]+)/)[ 1 ] || System.version ;
                            return "QQ浏览器" ;
                        }

                        //搜狗浏览器
                        if ( agent.indexOf( "se 2.x" )> 0 ) {
                            return '搜狗浏览器' ;
                        }

                        //Chrome:也可以使用window.chrome && window.chrome.webstore判断
                        if (System.type !== "Opera" ) {
                            var external = window.external,
                                clientInfo = window.clientInformation,
                                //客户端语言:zh-cn,zh.360下面会返回undefined
                                clientLanguage = clientInfo.languages;

                            //猎豹浏览器:或者agent.indexOf("lbbrowser")>0
                            if ( external && 'LiebaoGetVersion' in external) {
                                return '猎豹浏览器' ;
                            }
                            //百度浏览器
                            if (agent.indexOf( "bidubrowser" )> 0 ) {
                                System.version = agent.match(/bidubrowser\/([\d.]+)/)[ 1 ] ||
                                    agent.match(/chrome\/([\d.]+)/)[ 1 ];
                                return "百度浏览器" ;
                            }
                            //360极速浏览器和360安全浏览器
                            if ( System.supportSubTitle() && typeof clientLanguage === "undefined" ) {
                                //object.key()返回一个数组.包含可枚举属性和方法名称
                                var storeKeyLen = Object.keys(chrome.webstore).length,
                                    v8Locale = "v8Locale" in window;
                                return storeKeyLen > 1 ? '360极速浏览器' : '360安全浏览器' ;
                            }
                            return "Chrome" ;
                        }
                        return System.type;
                    };

                    //浏览器名称(如果是壳浏览器,则返回壳名称)
                    System.name = System.shell();
                    //对版本号进行过滤过处理
                    System.version = System.versionFilter(System.version);

                } catch (e) {
                    console.log( "error" );
                }
                return {
                    client:System
                };

            };


var Browser=getBrowser();
var name=Browser.client.name;

其他:

http://www.cnblogs.com/xulele/p/5960759.html


http://blog.csdn.net/hadstj/article/details/52658763

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值