`

javascript 的 代理检测(源自js高级程序设计)

    博客分类:
  • Web
 
阅读更多
<script type="text/javascript">
var client = function(){
        //呈现引擎
        var engine = {
                ie: 0,
                gecko: 0,
                webkit: 0,
                khtml: 0,
                opera: 0,

                //完整的版本号
                ver: null
        };

        // 浏览器
        var browser = {
                //主要浏览器
                ie: 0,
                firefox: 0,
                konq: 0,
                chrome: 0,
                safari: 0,

                // 具体版本号
                ver: null
        };

        // 平台、设备和操作系统
        var system = {
                win: false,
                mac: false,
                x11: false,

                // 移动设备
                iphone: false,
                ipod: false,
                nokiaN: false,
                winMobile: false,
                macMobile: false,

                // 游戏系统
                wii: false,
                ps: false
        };

        // 检测呈现引擎和浏览器
        var ua = navigator.userAgent;
        if(window.opera){
                engine.ver = browser.ver = window.opera.version();
                engine.opera = browser.opera = parseFloat(engine.ver);
        } else if( /AppleWebKit\/(\S+)/.test(ua)){
                engine.ver = RegExp["$1"];
                engine.webkit = parseFloat(engine.ver);

                // 确定是 Chrmoe 还是 Safari
                if(/Chrmoe\/(\S+)/.test(ua)){
                        browser.ver = RegExp["$1"];
                        browser.chrome = parseFloat(browser.ver);
                } else if(/Version\/(\S+)/.test(ua)){
                        browser.ver = RegExp["$1"];
                        browser.safri = parseFloat(browser.ver);
                } else {
                        // 近似的确定版本号
                        var safariVersion = 1;
                        if(engine.webkit < 100){
                                safariVersion = 1;
                        } else if (engine.webkit < 312){
                                safariVersion = 1.2;
                        } else if (engine.webkit < 412){
                                safariVersion = 1.3;
                        } else {
                                safariVersion = 2;
                        }

                        browser.safari = browser.ver = safariVersion;
                }
        } else if (/KHTML\/(\S+)/.test(ua) || /Knoqueror\/([^;]+)/.test(ua)){
                engine.ver = browser.ver = RegExp["$1"];
                engine.khtml = browser.konq = parseFloat(engine.ver);
        } else if (/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)){
                engine.ver = RegExp["$1"];
                engine.gecko = parseFloat(engine.ver);

                // 确定是不是Firefox
                if (/Firefox\/(\S+)/.test(ua)){
                        browser.ver = RegExp["$1"];
                        browser.firefox = parseFloat(browser.ver);
                }
        } else if (/MSIE ([^;]+)/.test(ua)){
                engine.ver = browser.ver = RegExp["$1"];
                engine.ie = browser.ie = parseFloat(engine.ver);
        }

        // 检测浏览器
        browser.ie = engine.ie;
        browser.opera = engine.opera;

        // 检测平台
        var p = navigator.platform;
        system.win = p.indexOf("Win") == 0;
        system.mac = p.indexOf("Mac") == 0;
        system.x11 = (p == "X11") || (p.indexOf("Linux") == 0 );

        // 检测 windows操作系统
    if (system.win){
                if (/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/.test(ua)){
                        if (RegExp["$1"] == "NT"){
                                switch (RegExp["$2"]){
                                        case "5.0":
                                                system.win = "2000";
                                                brreak;
                                        case "5.1":
                                                system.win = "xp";
                                                break;
                                        case "6.0":
                                                system.win = "Vista";
                                                break;
                                        case "6.1":
                                                system.win = " Win7";
                                                break;
                                        default:
                                                system.win = "NT";
                                                break;
                                }
                        } else if (RegExp["$1"]){
                                system.wein = "ME";
                        } else {
                                system.win = RegExp["$1"];
                        }
                }
    } 

        // 移动设备
        system.iphone = ua.indexOf("iPhone") >  -1;
        system.ipod = ua.indexOf("iPod") > -1;
        system.nokiaN = ua.indexOf("NokiaN") > -1;
        system.winMobile = (system.win == "CE");
        system.macMobile = (system.iphone || system.ipod);

        // 游戏系统
        system.wii = ua.indexOf("Wii") > -1;
        system.ps = /playstation/i.test(ua);

        // 返回这些对象
        return {
                engine: engine,
                browser: browser,
                system: system
        };
}();

if (client.browser.ie == "0"){
        alert("请选择使用IE浏览器!");
} else {
        alert("您现在使用的是IE浏览器");
}
</script>
分享到:
评论

相关推荐

    什么是javascript,学习javascript

    JavaScript库和框架,如jQuery、React、Angular、Vue.js等,可以帮助开发者更快地构建复杂的应用程序,提供便利的功能和性能优化。优化JavaScript性能的方法包括减少DOM操作、利用缓存、压缩代码、优化循环等。 ...

    JavaScript基础知识总结

    随着对 JavaScript 的深入理解,你可以逐步掌握更高级的概念,如函数、对象、数组、事件处理程序等,从而实现更复杂的网页功能。 总之,JavaScript 是网页开发不可或缺的一部分,它使得静态的 HTML 页面变得生动...

    javascript项目实战 模板

    【描述】:“北大青鸟ACCP5.0 51Job项目实战模板”是源自知名教育机构北大青鸟的课程资源,结合了51Job这样的就业服务平台的实际需求,设计了一系列实战项目。这个实战模板提供了一个全面的学习路径,帮助学员在完成...

    快速自学JavaScript的基础语法

    JavaScript可以用于多种场合,包括但不限于服务端开发(Node.js)、命令行工具(Node.js)、桌面程序(Electron)、App开发(Cordova)、物联网硬件控制(Ruff)和游戏开发(cocos2d-js)。这表明JavaScript已经成为一种全能的...

    Web程序设计-第章完美版资料.ppt

    《Web程序设计》第四版是一本深入探讨Web开发技术的教材,由电子工业出版社于2015年出版。本书涵盖了Web编程的基础知识,包括Web应用程序的开发与运行环境、HTML与XML、CSS、Web客户端程序设计、Web服务器端程序设计...

    大型JavaScript应用程序架构模式(1)

    在探讨大型JavaScript应用程序架构模式的过程中,我们首先需要理解架构模式的重要性以及它们如何帮助开发者构建更加稳定、可维护和可扩展的应用程序。今天,我们将深入研究几种关键的架构模式,特别是那些适用于从中...

    基于WEB程序设计基础-浙江大学(10)

    这个标题暗示了这是一个关于WEB程序设计的基础课程,源自浙江大学的教育体系,编号为“10”,可能代表这是该课程的第十个部分或者第十周的内容。在Web程序设计中,我们将涉及到一系列与创建和维护动态、交互式的Web...

    js游戏 空当接龙

    "js游戏 空当接龙"是利用JavaScript这门强大的客户端编程语言来实现的,让玩家无需安装额外软件就能在线游玩。 【描述】:“win10平台下的空当接龙的web实现” 在Win10平台上,"空当接龙"的Web实现涉及到前端开发...

    JavaScript and jQuery

    - **设计灵感来源**:JavaScript的设计理念主要源自Self和Scheme这两种编程语言。 #### 四、JavaScript的概念图 - **结构/表现/行为**:将网页分为三个层次——结构(HTML)、表现(CSS)和行为(JavaScript),...

    JavaScript手册

    JavaScript,作为一种广泛应用于Web开发的轻量级编程语言,源自Livescript,其设计目标是增强网站的交互性。它的特点包括简洁性、易学习性、跨平台兼容性以及遵循ECMAScript标准,确保了代码的可移植性。JavaScript...

    基于JSP的WEB网站构建与程序设计实训

    《基于JSP的WEB网站构建与程序设计实训》是一本面向实践的教程,旨在帮助学生和开发者掌握基于JSP的Web网站开发技术。这本书通过一系列的实训项目,逐步引导学习者从基础的网络构建到复杂的动态网页程序设计,全面...

    javascript简介.pdf

    例如,JavaScript可以用于表单验证,动态改变DOM元素,实现AJAX(异步JavaScript和XML)通信,创建动画效果,以及利用Web APIs(如WebSocket、Geolocation等)来实现更高级的功能。 JavaScript与Java虽然名字相似,...

    javaScript

    随着JavaScript的发展,出现了许多流行的框架和库,如React、Vue.js、Angular等,它们提供了一套完整的工具和约定,简化了大型应用程序的开发。此外,jQuery是一个广泛使用的JavaScript库,简化了DOM操作、事件处理...

    JavaScript_深度剖析(从入门到精通)

    JavaScript 是一种源自 Netscape 的 LiveScript 的客户端脚本语言。它的主要设计目的是为了克服早期 Web 开发中的速度问题,特别是与服务器端语言如 Perl 相比时的速度瓶颈。通过在客户端执行脚本代码,JavaScript ...

    javascript

    随着Node.js的出现,JavaScript也能够用于服务器端编程,构建全栈应用程序。此外,JavaScript还广泛应用于移动应用开发、游戏开发、物联网(IoT)设备、桌面应用等领域。 JavaScript教程通常包括以下几个部分: 1. *...

    JavaScript教程--从入门到精通

    - **Web应用程序**:随着Node.js的出现,JavaScript也可以在服务器端运行,构建完整的Web应用程序。 JavaScript的流行还催生了各种框架和库,如React、Angular和Vue.js,它们为开发者提供了更高级别的抽象,简化了...

    《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析

    本文实例讲述了Javascript面向对象程序设计单例模式原理与实现方法。分享给大家供大家参考,具体如下: 1.单例模式概述 源自百度百科对于单例模式的定义: 单例模式的意思就是只有一个实例。单例模式确保某一个类...

    程序设计中对象编程的课件

    在程序设计中,对象编程是一种核心概念,它允许开发者通过模拟现实世界中的实体来构建复杂的软件系统。在JavaScript中,对象编程是其语法结构的重要组成部分,使得代码更加灵活且易于维护。 1. **对象编程概述** -...

Global site tag (gtag.js) - Google Analytics