javascript 浏览器类型检测

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>Untitled Page</title>

</head>

<body>

    <script type="text/javascript">

        var sUserAgent = navigator.userAgent;

        var fAppVersion = parseFloat(navigator.appVersion);

        //浏览器版本比较,如果相等返回0 

        function compareVersions(sVersion1, sVersion2) {

            var aVersion1 = sVersion1.split(".");

            var aVersion2 = sVersion2.split(".");

            //针对版本号长度不定情况,如:Mozilla 0.9.2 

            if (aVersion1.length > aVersion2.length) {

                for (var i = 0; i < aVersion1.length - aVersion2.length; i++) {

                    aVersion2.push("0");

                }

            } else if (aVersion1.length < aVersion2.length) {

                for (var i = 0; i < aVersion2.length - aVersion1.length; i++) {

                    aVersion1.push("0");

                }

            }

            for (var i = 0; i < aVersion1.length; i++) {

                if (aVersion1[i] < aVersion2[i]) {

                    return -1;

                } else if (aVersion1[i] > aVersion2[i]) {

                    return 1;

                }

            }

            return 0;

        }

        //检测Opera

        var isOpera = sUserAgent.indexOf("Opera") > -1;

        var isMinOpera4 = isMinOpera5 = isMinOpera6 = isMinOpera7 = isMinOpera7_5 = false;

        if (isOpera) {

            var fOperaVersion;

            if (navigator.appName == "Opera") {

                fOperaVersion = fAppVersion;

            } else {

                var reOperaVersion = new RegExp("Opera (//d+//.//d+)");

                reOperaVersion.test(sUserAgent);

                fOperaVersion = parseFloat(RegExp["$1"]);

            }

            isMinOpera4 = fOperaVersion >= 4;

            isMinOpera5 = fOperaVersion >= 5;

            isMinOpera6 = fOperaVersion >= 6;

            isMinOpera7 = fOperaVersion >= 7;

            isMinOpera7_5 = fOperaVersion >= 7.5;

        }

        //检测KHTML/Safari

        var isKHTML = sUserAgent.indexOf("KHTML") > -1 || sUserAgent.indexOf("Konqueror") > -1 || sUserAgent.indexOf("AppleWebKit") > -1;

        var isMinSafari1 = isMinSafari1_2 = false;

        var isMinKonq2_2 = isMinKonq3 = isMinKonq3_1 = isMinKonq3_2 = false;

        if (isKHTML) {

            isSafari = sUserAgent.indexOf("AppleWebKit") > -1;

            isKonq = sUserAgent.indexOf("Konqueror") > -1;

            if (isSafari) {

                var reAppleWebKit = new RegExp("AppleWebKit///(//d+(?://.//d*)?)");

                reAppleWebKit.test(sUserAgent);

                var fAppleWebKitVersion = parseFloat(RegExp["$1"]);

                isMinSafari1 = fAppleWebKitVersion >= 85;

                isMinSafari1_2 = fAppleWebKitVersion >= 124;

            } else if (isKonq) {

                var reKonq = new RegExp("Konqueror///(//d+(?://.//d+(?://.//d)?)?)");

                reKonq.test(sUserAgent);

                isMinKonq2_2 = compareVersions(RegExp["$1"], "2.2") >= 0;

                isMinKonq3 = compareVersions(RegExp["$1"], "3.0") >= 0;

                isMinKonq3_1 = compareVersions(RegExp["$1"], "3.1") >= 0;

                isMinKonq3_2 = compareVersions(RegExp["$1"], "3.2") >= 0;

            }

        }

        //检测IE

        var isIE = sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1 && !isOpera;

        var isMinIE4 = isMinIE5 = isMinIE5_5 = isMinIE6 = false;

        if (isIE) {

            var reIE = new RegExp("MSIE (//d+//.//d+);");

            reIE.test(sUserAgent);

            var fIEVersion = parseFloat(RegExp["$1"]);

            isMinIE4 = fIEVersion >= 4;

            isMinIE5 = fIEVersion >= 5;

            isMinIE5_5 = fIEVersion >= 5.5;

            isMinIE6 = fIEVersion >= 6.0;

        }

        //检测Mozilla

        var isMoz = sUserAgent.indexOf("Gecko") > -1 && !isKHTML;

        var isMinMoz1 = sMinMoz1_4 = isMinMoz1_5 = false;

        if (isMoz) {

            var reMoz = new RegExp("rv:(//d+//.//d+(?://.//d+)?)");

            reMoz.test(sUserAgent);

            isMinMoz1 = compareVersions(RegExp["$1"], "1.0") >= 0;

            isMinMoz1_4 = compareVersions(RegExp["$1"], "1.4") >= 0;

            isMinMoz1_5 = compareVersions(RegExp["$1"], "1.5") >= 0;

        }

        //检测Netscape

        var isNS4 = !isIE && !isOpera && !isMoz && !isKHTML && (sUserAgent.indexOf("Mozilla") == 0) && (navigator.appName == "Netscape") && (fAppVersion >= 4.0 && fAppVersion < 5.0);

        var isMinNS4 = isMinNS4_5 = isMinNS4_7 = isMinNS4_8 = false;

        if (isNS4) {

            isMinNS4 = true;

            isMinNS4_5 = fAppVersion >= 4.5;

            isMinNS4_7 = fAppVersion >= 4.7;

            isMinNS4_8 = fAppVersion >= 4.8;

        }

        //检测操作系统

        var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");

        var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh");

        var isUnix = (navigator.platform == "X11") && !isWin && !isMac;

        var isWin95 = isWin98 = isWinNT4 = isWin2K = isWinME = isWinXP = false;

        var isMac68K = isMacPPC = false;

        var isSunOS = isMinSunOS4 = isMinSunOS5 = isMinSunOS5_5 = false;

        if (isWin) {

            isWin95 = sUserAgent.indexOf("Win95") > -1 || sUserAgent.indexOf("Windows 95") > -1;

            isWin98 = sUserAgent.indexOf("Win98") > -1 || sUserAgent.indexOf("Windows 98") > -1;

            isWinME = sUserAgent.indexOf("Win 9x 4.90") > -1 || sUserAgent.indexOf("Windows ME") > -1;

            isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;

            isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1;

            isWinNT4 = sUserAgent.indexOf("WinNT") > -1 || sUserAgent.indexOf("Windows NT") > -1 || sUserAgent.indexOf("WinNT4.0") > -1 || sUserAgent.indexOf("Windows NT 4.0") > -1 && (!isWinME && !isWin2K && !isWinXP);

        }

        if (isMac) {

            isMac68K = sUserAgent.indexOf("Mac_68000") > -1 || sUserAgent.indexOf("68K") > -1;

            isMacPPC = sUserAgent.indexOf("Mac_PowerPC") > -1 || sUserAgent.indexOf("PPC") > -1;

        }

        if (isUnix) {

            isSunOS = sUserAgent.indexOf("SunOS") > -1;

            if (isSunOS) {

                var reSunOS = new RegExp("SunOS (//d+//.//d+(?://.//d+)?)");

                reSunOS.test(sUserAgent);

                isMinSunOS4 = compareVersions(RegExp["$1"], "4.0") >= 0;

                isMinSunOS5 = compareVersions(RegExp["$1"], "5.0") >= 0;

                isMinSunOS5_5 = compareVersions(RegExp["$1"], "5.5") >= 0;

            }

        } 

    </script>

 

    <script type='text/javascript'>

        //使用方式

        window.onload = function () {

            if ((isWin & isMinIE6) || (isUnix && isMinMoz1) || (isMac && isMinSafari1)) {

                //TODO....

            }

        }

    </script>

</body>

</html>

时间: 2024-10-29 07:19:28

javascript 浏览器类型检测的相关文章

javascript 检测浏览器类型和版本的代码_javascript技巧

检测浏览器及其版本的代码 复制代码 代码如下: getBrowser : function(){ var browser = { msie: false, firefox: false, opera: false, safari: false, chrome: false, netscape: false, appname: 'unknown', version: 0 }, userAgent = window.navigator.userAgent.toLowerCase(); if ( /(

javascript 学习笔记(六)浏览器类型及版本信息检测代码_基础知识

下面的checkBrowser()函数主要检测了三种浏览器(IE, firefox, chrome),其它的浏览器的检测有兴趣的朋友可以自行添加检测代码! HTML部分代码: (页面加载时执行检测函数) 复制代码 代码如下: <body onload="checkBrowser()"> <p id="userAgent"></p> <p id="browser"></p> </bo

javascript 检测浏览器类型代码

网页特效 检测浏览器类型代码 Navigator 对象 JavaScript Navigator 对象包含了有关访问者浏览器的所有信息.接下来我们学习 Navigator 对象的两个属性. appName 保存浏览器类型 appVersion 存有浏览器的版本信息(其他信息中的一项) <html> <head> <title>Browser Detective</title> <script> var bVersion = 0; var isNa

检测客户端显示器分辨率、浏览器类型和客户端IP

分辨率|客户端|浏览器|显示 下面的代码实现了检测客户端显示器分辨率.浏览器类型和客户端IP的功能.你可以把客户端信息保存到Session,ViewState等中以便在其它的页面直接使用. ClientPeek.aspx <%@ Page language="vb" EnableViewState="false" Codebehind="ClientPeek.aspx.vb" AutoEventWireup="false"

Javascript isArray 数组类型检测函数_javascript技巧

1.typeof操作符.对于Function.String.Number.Undefined这几种类型的对象来说,不会有什么问题,但是针对Array的对象就没什么用途了: Js代码 复制代码 代码如下: alert(typeof null); // "object" alert(typeof []); // "object" 2.instanceof操作符.此操作符检测对象的原型链是否指向构造函数的prototype对象,恩,听起来不错,应该可以解决我们的数组检测问

利用JavaScript判断浏览器类型及版本_javascript技巧

本文将介绍如何使用Javascript来检测浏览器的类型以及版本号,包括猎豹浏览器.搜狗浏览器.傲游浏览器.360极速浏览器.360安全浏览器.QQ浏览器.百度浏览器.IE,Firefox,Chrome,safari,Opera等. 效果图 实例代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF

js检测访客浏览器类型的方法

在360浏览器检测 <script>document.write(navigator.userAgent.toLowerCase());</script> 输出来 mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0; .net clr 2.0.50727; infopath.2; asktbptv/5.17.0.25589; alexa toolbar) 在ff浏览器下检测显示为 mozilla/5.0 (w

Javascript实例教程(7) 利用Javascript基于浏览器类型的重定向

javascript|教程|浏览器 基于浏览器类型的重定向的实现可以通过使用JavaScript函数来检查navigator.userAgent的字符串"MSIE",它将告诉你用户是否使用Microsoft Internet Explorer(微软的IE浏览器).通过修改windows.location函数可以重定向到正确的URL(同意资源定位器).下面是详细的代码: <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScr

Javascript实例教程(8) 利用Javascript基于浏览器类型的重定向

javascript|教程|浏览器 利用javascript基于浏览器类型的重定向 基于浏览器类型的重定向的实现可以通过使用javascript函数来检查navigator.userAgent的字符串"MSIE",它将告诉你用户是否使用Microsoft Internet Explorer(微软的IE浏览器).通过修改windows.location函数可以重定向到正确的URL(同意资源定位器).下面是详细的代码: <HTML> <HEAD> <SCRIP