• 入门贴:利用jQuery插件扩展识别浏览器内核与外壳的类型和版本


      大家好,这是本人第一次在此发贴,不足之处敬请指正!

      在平时的B/S开发中,经常需要知道浏览器的内核类型和版本,甚至,有时还需要知道浏览器的外壳类型和版本。尤其是在当今各种浏览器满天飞(据说仅以IE为内核的浏览器就有200种之多)。

      小弟今天写了个基于jQuery的插件扩展,主要用于识别浏览器内核与外壳的类型和版本。可识别各种浏览器的内核,并已经支持多种国内主流浏览器。

      费话不多说,上我的JavaScript代码:(文件名:jquery.browsertype-1.0.js)

     1 /**
    2 * jQuery插件开发方法二:第一步:插件定义
    3 */
    4 jQuery.myPlugin = {
    5 //获得浏览器的内核与外壳的类型和版本
    6 Client: function (){
    7 //浏览器内核类型(只有五种)
    8 var engine = { ie:0, webkit:0, gecko:0, opera:0, khtml:0 };
    9 //浏览器外壳类型(国内常见的浏览器有:360浏览器、傲游、腾讯QQ\TT浏览器、世界之窗、彗星浏览器、绿色浏览器、传统IE、谷歌Chrome、网景netscape、火狐、Opera、苹果Safari等等)
    10 var shell = { se360:0, se:0, maxthon:0, qq:0, tt:0, theworld:0, cometbrowser:0, greenbrowser:0, ie:0, chrome:0, netscape:0, firefox:0, opera:0, safari:0, konq:0 };
    11 //获得客户端浏览器的信息
    12 var ua = navigator.userAgent.toLowerCase();
    13
    14 for (var type in engine) {
    15 if (typeof type === 'string') {
    16 var regexp = 'gecko' === type ? /rv:([\w.]+)/ : RegExp(type + '[ \\/]([\\w.]+)');
    17 if (regexp.test(ua)){
    18 engine.version = window.opera ? window.opera.version() : RegExp.$1;//浏览器内核版本
    19 engine[type] = parseFloat(engine.version);
    20 engine.type = type;//浏览器内核类型
    21 break;
    22 }
    23 }
    24 }
    25 for (var type in shell) {
    26 if (typeof type === 'string') {
    27 var regexp = null;
    28 switch(type) {
    29 case "se360": regexp = /360se(?:[ \/]([\w.]+))?/; break;
    30 case "se": regexp = /se ([\w.]+)/; break;
    31 case "qq": regexp = /qqbrowser\/([\w.]+)/; break;
    32 case "tt": regexp = /tencenttraveler ([\w.]+)/; break;
    33 case "safari": regexp = /version\/([\w.]+)/; break;
    34 case "konq": regexp = /konqueror\/([\w.]+)/; break;
    35 case "netscape": regexp = /navigator\/([\w.]+)/; break;
    36 default: regexp = RegExp(type + '(?:[ \\/]([\\w.]+))?');
    37 }
    38 if (regexp.test(ua)) {
    39 shell.version = window.opera ? window.opera.version() : RegExp.$1 ? RegExp.$1 : 'unknown';//浏览器外壳版本
    40 shell[type] = parseFloat(shell.version);
    41 shell.type = type;//浏览器外壳类型
    42 break;
    43 }
    44 }
    45 }
    46
    47 //返回浏览器内核与外壳的类型和版本:engine为内核,shell为外壳
    48 return { engine: engine, shell: shell };
    49 }
    50 };
    51
    52 /**
    53 * jQuery插件开发方法二:第二步:执行插件
    54 * jQuery.myBrowser插件:获得浏览器的内核与外壳的类型和版本
    55 * 使用示例:
    56 * (1)浏览器内核:alert("您的浏览器信息如下:\n内核类型:"+jQuery.myBrowser.engine.type+",内核版本:"+jQuery.myBrowser.engine.version);
    57 * (2)浏览器外壳:alert("您的浏览器信息如下:\n外壳类型:"+jQuery.myBrowser.shell.type+",外壳版本:"+jQuery.myBrowser.shell.version);
    58 */
    59 jQuery.myBrowser = jQuery.myPlugin.Client();

    使用示例:(test.html)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>获得浏览器的信息</title>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
    google.load(
    "jquery", "1.4.2");
    google.load(
    "jqueryui", "1.7.2");
    </script>
    <script type="text/javascript" src="jquery.browsertype-1.0.js"></script>
    <script type="text/javascript">
    alert(
    "您的浏览器信息如下:\n内核类型:"+jQuery.myBrowser.engine.type+",内核版本:"+jQuery.myBrowser.engine.version);
    alert(
    "您的浏览器信息如下:\n外壳类型:"+jQuery.myBrowser.shell.type+",外壳版本:"+jQuery.myBrowser.shell.version);
    document.writeln(
    "您的浏览器内核类型 ——>"+jQuery.myBrowser.engine.type+""+jQuery.myBrowser.engine.version+"<br>");
    document.writeln(
    "您的浏览器外壳类型 ——>"+jQuery.myBrowser.shell.type+""+jQuery.myBrowser.shell.version+"<br>");
    </script>
    </head>
    <body>
    <br/>测试浏览器的内核与外壳的类型和版本:<br/>
    </body>
    </html>



  • 相关阅读:
    在循环中禁止remove/add
    [算法竞赛入门]WERTYU
    [算法竞赛入门]Tex Quotes
    [算法竞赛入门]竖式问题
    [算法竞赛入门]蛇形填数
    [C++面试]关于const的使用方法
    [C++面试]单例模式-设计模式
    [C++面试]C++的三种继承(public/protected/private继承)
    用微服务架构,有哪些好处?
    东软数据可视化分析, 已经方便成这样?!
  • 原文地址:https://www.cnblogs.com/liyunqi007/p/2221114.html
Copyright © 2020-2023  润新知