JS 浏览器检测

66 1

浏览器检测一般是不需要等待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
  • 本文分类:JavaScript
  • 本文标签:浏览器检测
  • 流行热度:已超过 66 人围观了本文
  • 发布日期:2018年12月5日 - 0时09分00秒
  • 版权申明:本文系作者@木灵鱼儿原创发布在木灵鱼儿站点。未经许可,禁止转载。
微信收款码
微信收款码