PageSourceSearch

https://www.infotbm.com/themes/custom/infotbm/libs/browser.js

js infotbm.com collected 2026-10-01 11:39:00 UTC 4,718 bytes, 163 lines download raw bytes

vendor: 4,718 bytes, lines 1-163
1/* global window: false */
2
3;(function (factory) {
4    if (typeof define === 'function' && define.amd) {
5
6        define(['jquery'], function ($) {
7            return factory($);
8        });
9    } else if (typeof module === 'object' && typeof module.exports === 'object') {
10
11        module.exports = factory(require('jquery'));
12    } else {
13
14        factory(window.jQuery);
15    }
16}(function(jQuery) {
17    "use strict";
18
19    function uaMatch( ua ) {
20
21        if ( ua === undefined ) {
22            ua = window.navigator.userAgent;
23        }
24        ua = ua.toLowerCase();
25
26        var match = /(edge)\/([\w.]+)/.exec( ua ) ||
27          /(opr)[\/]([\w.]+)/.exec( ua ) ||
28          /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
29          /(iemobile)[\/]([\w.]+)/.exec( ua ) ||
30          /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
31          /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
32          /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
33          /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
34          /(msie) ([\w.]+)/.exec( ua ) ||
35          ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
36          ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
37          [];
38
39        var platform_match = /(ipad)/.exec( ua ) ||
40          /(ipod)/.exec( ua ) ||
41          /(windows phone)/.exec( ua ) ||
42          /(iphone)/.exec( ua ) ||
43          /(kindle)/.exec( ua ) ||
44          /(silk)/.exec( ua ) ||
45          /(android)/.exec( ua ) ||
46          /(win)/.exec( ua ) ||
47          /(mac)/.exec( ua ) ||
48          /(linux)/.exec( ua ) ||
49          /(cros)/.exec( ua ) ||
50          /(playbook)/.exec( ua ) ||
51          /(bb)/.exec( ua ) ||
52          /(blackberry)/.exec( ua ) ||
53          [];
54
55        var browser = {},
56          matched = {
57              browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || "",
58              version: match[ 2 ] || match[ 4 ] || "0",
59              versionNumber: match[ 4 ] || match[ 2 ] || "0",
60              platform: platform_match[ 0 ] || ""
61          };
62
63        if ( matched.browser ) {
64            browser[ matched.browser ] = true;
65            browser.version = matched.version;
66            browser.versionNumber = parseInt(matched.versionNumber, 10);
67        }
68
69        if ( matched.platform ) {
70            browser[ matched.platform ] = true;
71        }
72
73        if ( browser.android || browser.bb || browser.blackberry || browser.ipad || browser.iphone ||
74          browser.ipod || browser.kindle || browser.playbook || browser.silk || browser[ "windows phone" ]) {
75            browser.mobile = true;
76        }
77
78        if ( browser.cros || browser.mac || browser.linux || browser.win ) {
79            browser.desktop = true;
80        }
81
82        if ( browser.chrome || browser.opr || browser.safari ) {
83            browser.webkit = true;
84        }
85
86        if ( browser.rv || browser.iemobile) {
87            var ie = "msie";
88
89            matched.browser = ie;
90            browser[ie] = true;
91        }
92
93        if ( browser.edge ) {
94            delete browser.edge;
95            var msedge = "msedge";
96
97            matched.browser = msedge;
98            browser[msedge] = true;
99        }
100
101        if ( browser.safari && browser.blackberry ) {
102            var blackberry = "blackberry";
103
104            matched.browser = blackberry;
105            browser[blackberry] = true;
106        }
107
108        if ( browser.safari && browser.playbook ) {
109            var playbook = "playbook";
110
111            matched.browser = playbook;
112            browser[playbook] = true;
113        }
114
115        if ( browser.bb ) {
116            var bb = "blackberry";
117
118            matched.browser = bb;
119            browser[bb] = true;
120        }
121
122        if ( browser.opr ) {
123            var opera = "opera";
124
125            matched.browser = opera;
126            browser[opera] = true;
127        }
128
129        if ( browser.safari && browser.android ) {
130            var android = "android";
131
132            matched.browser = android;
133            browser[android] = true;
134        }
135
136        if ( browser.safari && browser.kindle ) {
137            var kindle = "kindle";
138
139            matched.browser = kindle;
140            browser[kindle] = true;
141        }
142
143        if ( browser.safari && browser.silk ) {
144            var silk = "silk";
145
146            matched.browser = silk;
147            browser[silk] = true;
148        }
149
150        browser.name = matched.browser;
151        browser.platform = matched.platform;
152        return browser;
153    }
154
155    window.jQBrowser = uaMatch( window.navigator.userAgent );
156    window.jQBrowser.uaMatch = uaMatch;
157
158    if ( jQuery ) {
159        jQuery.browser = window.jQBrowser;
160    }
161
162    return window.jQBrowser;
163}));

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.