easybrowser
Version:
Detect browser and implement helpful classes.
68 lines (53 loc) • 2.47 kB
JavaScript
/*!
* easyBrowser v0.1: Detect browser and implement helpful classes.
* (c) 2016 Erny Sans
*
* http://github.com/ernysans/easybrowser
* http://erny.co
* MIT License
*/
;
var supports = !!document.querySelector && !!window.addEventListener;
// Call ======================================== //
function easyBrowser() {
// feature test
if ( !supports ) return;
window.addEventListener('DOMContentLoaded', function (e) {
e.preventDefault();
var body = document.querySelector('body'); // select the body
// =========================================== //
// Screen Density ============================ //
// =========================================== //
var screenDensity = lend.screenDensity();
if (screenDensity) body.classList.add('screen-' + screenDensity);
// =========================================== //
// Navigator User Agent ===================== //
// =========================================== //
var userAgent = lend.userAgent();
if (userAgent) body.classList.add('ua-' + userAgent);
// =========================================== //
// OS ======================================== //
// =========================================== //
var os = lend.os();
if (os) body.classList.add('os-' + os);
if (os == 'Win' || os == 'unix' || os == 'linux') body.classList.add('os-pc');
// =========================================== //
// Languages ================================= //
// =========================================== //
var language = lend.language();
if (language) body.classList.add('lang-' + language);
// =========================================== //
// Client Screen Size ================================= //
// =========================================== //
function setScreenSize(){
// Reset client classes
body.classList.remove('client-xl', 'client-lg', 'client-md', 'client-sm', 'client-xs');
var screenSize = lend.screenSize('bootstrap');
if (screenSize) body.classList.add('client-' + screenSize);
}
var onResize = occurrence.debounce(function() { setScreenSize() }, 30);
window.addEventListener('resize', onResize, false);
// Set client screen size class
setScreenSize();
}, false);
}