JavaScript implementation detects client type code packet _javascript tips

Source: Internet
Author: User
Tags win32 microsoft edge

Detect browser rendering engines, platforms, Windows operating systems, mobile devices, and game systems for accessing Web pages

/** * Author:laixiangran.
 * Created by Laixiangran on 2015/12/02. * Detect access to Web page browser rendering engine, platform, Windows operating system, mobile device and gaming system * ******************************************************************** * User agent string for each version browser under windows10.0: * Google Chrome 45.0.2454.85--"mozilla/5.0" (Windows NT 10.0; WOW64) applewebkit/537.36 (khtml, like Gecko) chrome/45.0.2454.85 safari/537.36 "* Opera 31.0.1889.174--" mozilla/5.0 (W indows NT 10.0; WOW64) applewebkit/537.36 (khtml, like Gecko) chrome/44.0.2403.155 safari/537.36 "* Microsoft opr/31.0.1889.174" mozilla/5.0 (Windows NT 10.0; Win64; x64) applewebkit/537.36 (khtml, like Gecko) chrome/42.0.2311.135 safari/537.36 "* Firefox edge/12.10240" 40.0.3-- a/5.0 (Windows NT 10.0; WOW64; rv:40.0) gecko/20100101 firefox/40.0 "* Internet Explorer 11+--" mozilla/5.0 (Windows NT 10.0; WOW64; trident/7.0;. net4.0c;. net4.0e. NET CLR 2.0.50727;. NET CLR 3.0.30729;. NET CLR 3.5.30729; rv:11.0) Like Gecko "* Internet Explorer 10---" mozilla/5.0 (CompatiblE MSIE x.0; Windows NT 10.0; WOW64; trident/8.0;. net4.0c;.

  net4.0e. NET CLR 2.0.50727;. NET CLR 3.0.30729;. NET CLR 3.5.30729) "*/function () {window.iclient = {}; Render engine information var engine = {//render engine ie:0, gecko:0, webkit:0, khtml:0, opera:0,//specific version number VE

  R:null}; 
    var browser = {//browser ie:0, edge:0, firefox:0, safari:0, konq:0, opera:0, chrome:0,

  Specific version number Ver:null}; platform, device and operating system var system = {Win:false, mac:false, Unix:false,//Mobile device Iphone:false, IPOD:FA LSE, IPAD:FALSE, Ios:false, Android:false, Nokian:false, Winmobile:false,//Gaming system WII:FA

  LSE,//Nintendo Ps:false//playstation3};

  Gets the user agent string for the browser var ua = window.navigator.userAgent;
    The Opera browser that detects the rendering engine and the browser//detects the Presto kernel (window.opera) {engine.ver = Browser.ver = Window.opera.version ();
  Engine.opera = Browser.opera = parsefloat (engine.ver); }
  //Detection WebKit use "AppleWebKit" in the proxy string to detect else if (/applewebkit\/(\s+)/.test (UA)) {Engine.ver = regexp["$"];
    Engine.webkit = parsefloat (engine.ver);
      Determine Microsoft Edge if (/edge\/(\s+)/.test (UA)) {Browser.ver = regexp["$"];
    Browser.edge = parsefloat (browser.ver);
      }//Determine WebKit kernel opera else if (/opr\/(\s+)/.test (UA)) {Browser.ver = regexp["$"];
    Browser.opera = parsefloat (browser.ver);
      }//Determine if Chrome else if (/chrome\/(\s+)/.test (UA)) {Browser.ver = regexp["$"];
    Browser.chrome = parsefloat (browser.ver);
      }//Determine Safari else if (/version\/(\s+)/.test (UA)) {Browser.ver = regexp["$"];
    Browser.safari = parsefloat (browser.ver);
      }else{//Approximate definite version number var safariversion = 1;
      if (Engine.webkit < MB) {safariversion = 1;
      }else if (Engine.webkit <312) {safariversion = 1.2;
      }else if (Engine.webkit < 412) {safariversion = 1.3; }else{SafarivErsion = 2;
    } browser.ver = Browser.safari = safariversion; }//Detect khtml for versions that do not contain khtml in Konqueror3.1 and earlier versions, use the Konqueror version instead of else if (/khtml\/(\s+)/.test (UA) | |/konqueror\/(
    \s+)/.test (UA)) {engine.ver = Browser.ver = regexp["$"]; engine.khtml = Browser.konq = parsefloat (engine.ver); s}//detect Gecko its version number is at the back of the string "rv:" Else if (/rv: ([^\)]+) \) gecko\/\d
    {8}/.test (UA)) {Engine.ver = regexp["$"];
    Engine.gecko = parsefloat (engine.ver);
      Determine if the Firefox if (/firefox\/(\s+)/.test (UA)) {Browser.ver = regexp["$"];
    Browser.firefox = parsefloat (browser.ver); }//Detect IE else if (/msie) ([^;] +)/.test (UA) | |
    /RV: ([^\)]+) \ like Gecko/.test (UA)) {engine.ver = Browser.ver = regexp["$"];
  engine.ie = browser.ie = parsefloat (engine.ver);

  //Get platform or operating system information, possible values: Win32, Win64, MACPPC, Macintel, Xll, Linux i686 var p = window.navigator.platform;
  Detection Platform System.win = P.indexof ("win") = = 0;
  System.mac = P.indexof ("mac") = = 0; SysTem.unix = (P = = "Xll '") | |

  (P.indexof ("Linux") = = 0); Detects the Windows operating system if (System.win) {if (/win) {if (?:d ows)? ( [^do] {2}) \s? (\d+\.\d+)/.test (UA)) {if (regexp["$" = = "NT") {switch (regexp["$"]) {case "5.0": Sy
            Stem.win = "2000";
          Break
            Case "5.1": System.win = "XP";
          Break
            Case "6.0": System.win = "Vista";
          Break
            Case "7": System.win = "7";
          Break
            Case "8": System.win = "8";
          Break
            Case "8.1": System.win = "8.1";
          Break
            Case "10.0": System.win = "10.0";
          Break
            Default:system.win = "NT";
        Break
  }}///mobile device System.iphone = Ua.indexof ("iphone") >-1;
  System.ipod = Ua.indexof ("ipod") >-1;
  System.ipad = Ua.indexof ("ipad") >-1; System.nokian = Ua.indexof ("Nokian") >-1;
  Window Mobile if (System.win = = "CE") {system.winmobile = System.win;
      }else if (System.win = = "Ph") {if (/windows phone OS (\d+.\d+)/.test (UA)) {System.win = "phone";
    System.winmobile = parsefloat (regexp["$"); }//Detect iOS version if (System.mac && ua.indexof ("Mobile") >-1) {if/CPU (?: IPhone)? OS (\d+.\d+)/.test (UA) {System.ios = parsefloat (regexp["$"].replace ("_", "."));  else{System.ios = 2;//cannot be really detected, so only guess}//detect Android Version if (/android (\d+.\d+)/.test (UA)) {System.android
  = Parsefloat (regexp["$"]);
  }//Detect game system system.wii = Ua.indexof ("Wii") >-1;

  system.ps =/playstation/i.test (UA);
  Window.iClient.engine = engine;
  Window.iClient.browser = browser;
Window.iClient.system = System;
 })();

To give you an example of a simple point: Judge Windows, Linux, Android

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.