JS 浏览器检测
浏览器检测一般是不需要等待dom加载完毕的,都是直接运行判断的,所以我们在window下直接运行函数,但是又不能直接写函数,这样可能会和后面的函数冲突,比如你写了个box()函数,万一后面又有人写一个box()函数那不是冲突了,所以还要做一个闭包处理。
(function getState() {
(function getState() {
window.system = {};
var s = [];
var ua = navigator.userAgent.toLowerCase();
(s = ua.match(/firefox\/([\d.]+)/)) ? system.firfox = s[1]:
(s = ua.match(/chrome\/([\d.]+)/)) ? system.chrome = s[1] :
(s = ua.match(/msie ([\d.]+)/)) ? system.ie = s[1] :
(s = ua.match(/opr\/[\d.]+/)) ? system.opera = s[1] :
(s = ua.match(/opera\/.*version\/[\d.]+/)) ? system.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? system.safari = s[1] : 0;
})()
})();
自运行函数一般是两对圆括号组成,有时候我们因为要在别处调用啥的,只在后面加一对圆括号表示自运行,如果是两个圆括号就形成了闭包,闭包的话外面是无法调用的,所以我们要在里面创建一个window下的属性,用于调用。
然后就是创建一个数组用于保存提取的数据,因为浏览器使用只可能是在单一环境下,所以不必像上一章那样使用push传入,这里直接等于即可。
创建一个ua变量保存浏览器信息。
通过连续的三元运算判断是哪个浏览器,如果是便将数组中提取的信息通过创建键对值的形式保存在window.system中,外面再进行调用。
分类:
JavaScript
标签:
浏览器检测
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
全部评论 1
gellytech
Google Chrome Windows 7