diff options
Diffstat (limited to 'js/codeq/misc.js')
-rw-r--r-- | js/codeq/misc.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/js/codeq/misc.js b/js/codeq/misc.js new file mode 100644 index 0000000..b83f271 --- /dev/null +++ b/js/codeq/misc.js @@ -0,0 +1,71 @@ +/* Detect if we're on a phone, browser and platform type */ +(function browserDetection() { + var platform = navigator.platform, + userAgent = navigator.userAgent, + runningOnPhone = false, // default value, will be changed if detected otherwise + browserType = 'unknown', + platformType = 'unknown'; + + // Apple platforms + if ((/iPod/.test(platform)) || (/iPhone/.test(platform))) { + runningOnPhone = true; + browserType = 'safari'; + platformType = 'iapple'; + } + else if (/iPad/.test(platform)) { + runningOnPhone = false; + browserType = 'safari'; + platformType = 'iapple'; + } + else { + // general test for phones + if (/[Mm]obile/.test(userAgent)) { + runningOnPhone = true; + } + + if ((/MSIE/.test(userAgent) && /Touch/.test(userAgent)) || (/IEMobile/.test(userAgent))) { + platformType = 'ietouch'; + } + + if (/BlackBerry/.test(userAgent) || /BB10/.test(userAgent)) { + platformType = 'blackberry'; + } + + // general browser tests + if (/Presto/.test(userAgent)) { + browserType = 'opera'; + } + else if (/Android/.test(userAgent)) { + // Android platform: only firefox, webkit, and chrome are possible + platformType = 'android'; + if (/Chrome/.test(userAgent)) { + browserType = 'chrome'; + } + else if (/Firefox/.test(userAgent)) { + browserType = 'firefox'; + } + else if (/Safari/.test(userAgent)) { + browserType = 'webkit'; + } + } + else { + // desktop, or other mobile platforms + if (/Chrome/.test(userAgent)) { + browserType = 'chrome'; + } + else if (/Firefox/.test(userAgent)) { + browserType = 'firefox'; + } + else if (/Safari/.test(userAgent)) { + browserType = 'webkit'; + } + else if (/MSIE/.test(userAgent)) { + browserType = 'ie'; + } + } + } + + codeq.runningOnPhone = runningOnPhone; + codeq.browserType = browserType; + codeq.platformType = platformType; +})();
\ No newline at end of file |