VaR client = function () {// rendering engine var engine = {ie: 0, Gecko: 0, WebKit: 0, khtml: 0, opera: 0, Ver: NULL }; // browser var browser = {// main Browser IE: 0, Firefox: 0, konq: 0, opera: 0, chrome: 0, Safari: 0, // Version ver: null}; var system = {win: false, Mac: false, X11: false, // mobile device iPhone: false, iPod: false, nokian: false, winmobile: false, macmobile: false, // game system Wii: false, PS: false}; // detect rendering engine and browser var UA = navigato R. 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); If (/chrome \/(\ s + )/. test (UA) {browser. ver = Regexp ["$1"]; browser. chrome = parsefloat (browser. ver);} else if (/version \/(\ s + )/. test (UA) {browser. ver = Regexp ["$1"]; br Owser. safari = 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) |/Konqueror \/([^;] + )/. test (UA) {engine. ver = browser. ver = Regexp ["$1"]; engine. khtml = Parsefloat (engine. ver);} else if (/RV :( [^ \)] +) \) Gecko \/\ D {8 }/. test (UA) {engine. ver = browser. ver = Regexp ["$1"]; engine. gecko = parsefloat (engine. ver); // 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 (browser. ver);} browser. ie = engine. IE; Browser. opera = engine. opera; // detection platform var P = navigator. platform; system. win = P. indexof ("win") = 0; system. MAC = P. indexof ("Mac") = 0; system. x11 = (P = "X11") | (P. indexof ("Linux") = 0); // checks 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"; break; Case "5.1": system. win = "XP"; break; Case "6.0": system. win = "vista"; break; default: system. win = "NT"; break;} else if (Regexp ["$1"] = "9x") {system. win = "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 };}();
From JavaScript advanced programming (version 2)