PageSourceSearch

https://majidesu-stage.com/assets/js/userAgentChecker.js

js majidesu-stage.com collected 2026-10-06 19:20:47 UTC 3,737 bytes, 78 lines download raw bytes

1// User Agent Checker
2// v0.1.0
3// -----------------------------------------------------------
4
5+(function () {
6  _uac = {}; // define _uac as a global object
7  var ua = window.navigator.userAgent.toLowerCase();
8  var ver = window.navigator.appVersion.toLowerCase();
9
10  // check browser version
11  _uac.browser = (function(){
12      if (ua.indexOf('edge') !== -1) return 'edge';                           // Edge
13      else if (ua.indexOf("iemobile") !== -1)      return 'iemobile';         // ieMobile
14      else if (ua.indexOf('trident/7') !== -1)     return 'ie11';             // ie11
15      else if (ua.indexOf("msie") !== -1 && ua.indexOf('opera') === -1){
16          if      (ver.indexOf("msie 6.")  !== -1) return 'ie6';              // ie6
17          else if (ver.indexOf("msie 7.")  !== -1) return 'ie7';              // ie7
18          else if (ver.indexOf("msie 8.")  !== -1) return 'ie8';              // ie8
19          else if (ver.indexOf("msie 9.")  !== -1) return 'ie9';              // ie9
20          else if (ver.indexOf("msie 10.") !== -1) return 'ie10';             // ie10
21      }
22      else if (ua.indexOf('chrome')  !== -1 && ua.indexOf('edge') === -1)   return 'chrome';    // Chrome
23      else if (ua.indexOf('safari')  !== -1 && ua.indexOf('chrome') === -1) return 'safari';    // Safari
24      else if (ua.indexOf('opera')   !== -1) return 'opera';                  // Opera
25      else if (ua.indexOf('firefox') !== -1) return 'firefox';                // FIrefox
26      else return 'unknown_browser';
27  })();
28
29  // check device
30  _uac.device = (function(){
31      if(ua.indexOf('iphone') !== -1 || ua.indexOf('ipod') !== -1 ) return 'iphone';
32      else if (ua.indexOf('ipad')    !== -1) return 'ipad';
33      else if (ua.indexOf('android') !== -1) return 'android';
34      else if (ua.indexOf('windows') !== -1 && ua.indexOf('phone') !== -1) return 'windows_phone';
35      else return '';
36  })();
37
38  // check ios version
39  _uac.iosVer = (function(){
40      if ( /iP(hone|od|ad)/.test( navigator.platform ) ) {
41          var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
42          var versions = [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
43          return versions[0];
44      }
45      else return 0;
46  })();
47
48  // check android version
49  _uac.androidVer = (function(){
50      if ( /Android/.test( navigator.appVersion ) ) {
51          var v = ua.slice(ua.indexOf("android")+8).split(";");
52          return parseFloat(v[0]);
53      }
54      else return 0;
55  })();
56
57  _uac.isiOS = (_uac.device === 'iphone' || _uac.device === 'iPad');
58  _uac.isMobile = (ua.indexOf('mobi') !== -1 || _uac.device === 'iphone' || (_uac.device === 'windows_phone' && ua.indexOf('wpdesktop') === -1) || _uac.device === 'iemobile');
59  _uac.isTablet = (_uac.device === 'ipad' || (_uac.device === 'android' && !_uac.isMobile));
60  _uac.isTouch  = ('ontouchstart' in window);
61  _uac.isModern = !(_uac.browser === 'ie6' || _uac.browser === 'ie7' || _uac.browser === 'ie8' || _uac.browser === 'ie9' || (0 < _uac.iosVer && _uac.iosVer < 8));
62
63  // Set the results as class names of the html
64  _uac.addClass = function() {
65    var home_class = ' ';
66    home_class += (_uac.browser !== '') ? _uac.browser + " " : 'browser-unknown ',
67    home_class += (_uac.device  !== '') ? _uac.device + " "  : 'device-unknown ',
68    home_class += (_uac.isMobile) ? 'mobile ' : 'desktop ',
69    home_class += (_uac.isTouch) ? 'touch '  : 'mouse ',
70    home_class += (_uac.isModern) ? 'modern ' : 'old ';
71
72    document.addEventListener('DOMContentLoaded', function() {
73      document.documentElement.className += home_class;
74    });
75  };
76  _uac.addClass();
77
78})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.