BOM之Navigator对象

Navigator对象
Navigator 对象属性
属性描述
appCodeName返回浏览器的代码名。
appMinorVersion返回浏览器的次级版本。
appName返回浏览器的名称。
appVersion返回浏览器的平台和版本信息。
browserLanguage返回当前浏览器的语言。
cookieEnabled返回指明浏览器中是否启用 cookie 的布尔值。
cpuClass返回浏览器系统的 CPU 等级。
onLine返回指明系统是否处于脱机模式的布尔值。
platform返回运行浏览器的操作系统平台。
systemLanguage返回 OS 使用的默认语言。
userAgent返回由客户机发送服务器的 user-agent 头部的值。
userLanguage返回 OS 的自然语言设置。
Navigator 对象方法
方法描述
javaEnabled()规定浏览器是否启用 Java。
taintEnabled()规定浏览器是否启用数据污点 (data tainting)。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Navigator对象</title>
    <script>
        /**
         * Navigator
         *      -代表当前浏览器信息,通过对象可以用来识别不同浏览器
         *      -由于历史原因,Navigator对象中大部分属性已经不可以帮助我们识别浏览器了
         *       -一般我们只会使用userAgent(用户代理等价于浏览器)来判断浏览器信息
         *          userAgent是一个字符串,这个字符串包含用来描述浏览器信息的内容
         *          不同的浏览器会有不同的userAgent
         * 火狐的userAgent
         *  Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0
         *  浏览器内核版本    win10版本   64位      浏览器版本   css页面渲染引擎Gecko 火狐82.0
         *  谷歌中的userAgent
         *  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4302.0 Safari/537.36
         *  ie8的userAgent
         *  Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; LCTE)
         *  ie9的userAgent
         *  Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; LCTE)
         *  ie10的userAgent
         *  Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; LCTE)
         *  ie11的userAgent
         *  Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; LCTE; rv:11.0) like Gecko
         *  在ie11中已经将微软和IE相关的的标识去掉,所以我们基本不能通过userAgent判断浏览器是否是ie11
         *  最骚的是它为了不受歧视,在最后加上了like Gecko,那是火狐的渲染引擎
         *   为什么前边都要是Mozilla/5.0?
         *   互联网早期由于Netscape影响力,导致现在包括ie浏览器都要表明自己身份兼容Mozilla
         *   那么如何判断是什么浏览器?
         *   在userAgent返回的字符串中有自己浏览器名字,可以用正则表达式匹配
         *
         */
        console.log(window.navigator.appName);//Netscape 致敬网景公司(除了ie10及以下)
        /**
         * 如果无法通过userAgent判断我们的浏览器,还可以通过一些浏览器特有的对象,来判断浏览器信息
         * 比如:ActiveXObject
         * 但是还是被发现了很多浏览器用它判断ie11,
         * 于是window.ActiveXObject返回值是false,存在还返回false
         * 真的不要脸,啊呸!
         */
        var ua = navigator.userAgent;
        console.log(ua);
        if (/firefox/i.test(ua))
        {
            alert("我是火狐浏览器");
        } else if (/chrome/i.test(ua)){
            alert("我是谷歌浏览器");
        }else if ("ActiveXObject" in window ){
            //ie11还在伪装还是抓不住
            //于是我们就用"ActiveXObject" in window 判断
            alert("我就是ie浏览器")
        }
        //于是我们就用"ActiveXObject" in window 判断
        
    </script>
</head>
<body>

</body>
</html>
调侃

没想到大名鼎鼎的ie浏览器竟然如此狼狈,微软虽然竞争赢了网景公司,ie浏览器还是不行啊。居然要伪装成别的浏览器才能获得更好的渲染,识别一个ie浏览器太难了,window.ActiveXObject存在它居然返回false,简直就离谱,为了防止别人发现它ie11。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值