木灵鱼儿

木灵鱼儿

阅读:1814

最后更新:2018/12/11/ 14:10:32

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中,外面再进行调用。

版权申明

本文系作者 @木灵鱼儿 原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

关于作者

站点职位 博主
获得点赞 0
文章被阅读 1814

相关文章

目录树