js中的navigator对象及userAgent

阅读数:149 评论数:0

跳转到新版页面

分类

html/css/js

正文

一、navigator

navigator为window对象的一个属性,指向一个包含浏览器相关信息的对象。

以下是 window.navigator 对象的一些常见属性:

  • navigator.appCodeName

    • 浏览器的代码名的字符串表示(例如,"Mozilla")。
  • navigator.appName

    • 官方浏览器名称的字符串表示(例如,"Netscape")。
  • navigator.appVersion

    • 浏览器版本信息的字符串表示。
  • navigator.userAgent

    • 用户代理头的字符串表示,包含了浏览器类型、版本、操作系统等信息。
  • navigator.platform

    • 浏览器运行的操作系统平台的字符串表示。
  • navigator.language

    • 浏览器当前选定的语言,通常是浏览器UI的语言。
  • navigator.languages

    • 用户的首选语言列表,通常与HTTP请求的Accept-Language头部信息相对应。
  • navigator.onLine

    • 返回一个布尔值,表明浏览器是否在线。
  • navigator.cookieEnabled

    • 返回一个布尔值,表明在当前浏览器中是否启用了cookie。
  • navigator.geolocation

    • 用于获取设备的地理位置信息。
  • navigator.connection

    • 提供有关系统的网络连接信息(如下载速度、上传速度和网络类型)。
  • navigator.javaEnabled()

    • 方法返回一个布尔值,表明浏览器是否启用了Java。
  • navigator.plugins

    • 描述浏览器安装的插件信息的数组。
  • navigator.serviceWorker

    • 提供了一个注册、删除、更新和通信的Service Workers的接口。
  • navigator.hardwareConcurrency

    • 返回一个整数,表示逻辑处理器的数量,允许开发者根据用户计算机的CPU核心数来优化线程使用。
  • navigator.doNotTrack

    • 返回用户是否设置了"不跟踪"(DNT)标志,该标志表明用户不希望其浏览行为被跟踪。
  • navigator.permissions

    • 提供了查询和更新权限的接口,可以用来检查和请求诸如地理位置、推送通知、摄像头访问等权限。
  • navigator.mediaDevices

提供访问连接到计算机的媒体输入设备,如摄像头和麦克风的能力。

二、常用例子

一些例子:
 
<script>
//判断当前页面所在的环境是不是微信内置浏览器
function isWeiXin() {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
return true;
} else {
return false;
}
}
 
//判断苹果、安卓、pc
 
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { //判断iPhone|iPad|iPod|iOS
  window.location.href ="iPhone.html";
} else if (/(Android)/i.test(navigator.userAgent)) {  //判断Android
  window.location.href ="Android.html";
} else { //pc
  window.location.href ="pc.html";
};
//正则表达式判断浏览器类型
 
function userBrowser(){   
    var browserName=navigator.userAgent.toLowerCase();   
    if(/msie/i.test(browserName) && !/opera/.test(browserName)){   
        alert("IE");   
        return ;   
    }else if(/firefox/i.test(browserName)){   
        alert("Firefox");   
        return ;   
    }else if(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName)){   
        alert("Chrome");   
        return ;   
    }else if(/opera/i.test(browserName)){   
        alert("Opera");   
        return ;   
    }else if(/webkit/i.test(browserName) &&!(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName))){   
        alert("Safari");   
        return ;   
    }else{   
        alert("unKnow");   
    }   
}  
 
</script>
var browser = {
    versions: function () {
        var u = navigator.userAgent, app = navigator.appVersion;
        return {         //移动终端浏览器版本信息
            trident: u.indexOf('Trident') > -1, //IE内核
            presto: u.indexOf('Presto') > -1, //opera内核
            webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
            gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
            mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
            ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
            android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
            iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
            iPad: u.indexOf('iPad') > -1, //是否iPad
            webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
        };
    }(),
    language: (navigator.browserLanguage || navigator.language).toLowerCase()
}
if (browser.versions.mobile) {//判断是否是移动设备打开。browser代码在下面
        var ua = navigator.userAgent.toLowerCase();//获取判断用的对象
        if (ua.match(/MicroMessenger/i) == "micromessenger") {
                //在微信中打开
        }
        if (ua.match(/WeiBo/i) == "weibo") {
                //在新浪微博客户端打开
        }
        if (ua.match(/QQ/i) == "qq") {
                //在QQ空间打开
        }
        if (browser.versions.ios) {
                //是否在IOS浏览器打开
        } 
        if(browser.versions.android){
                //是否在安卓浏览器打开
        }
} else {
        //否则就是PC浏览器打开
}



相关推荐

一、script标签属性 async 表示立即下载该脚本,但不妨碍页面中的其他操作,只对外部文件有效。 charset 与src属性一起使用,告诉浏览器用来编码这个javascript程序的

ECMAscript 5添加了第二种运行模式:严格模式(strict mode)。 //针对单个脚本 <script>   "use strict";   console.log("这是严格模式

Javascript中, !表示运算符"非", 如果变量不是布尔类型, 会将变量自动转化为布尔类型

一、基本用法 Object.assign方法用于对象的合并,将源对象的所有可枚举属性复制目标对象。 <

在我们封装请求的js文件中加一个判断即可,先声明一个变量showMsg来控制是否需要弹框,初始化为true,然后在请求判断中如果token失效导致走了401,先判断当前是否可以显示弹框,初始化为

一、window对象 在javascript中,一个浏览器窗口就是一个window对象,window对象以及这些子对象,由于都是用于操作浏览器窗口,所以我们又称为BOM(Browser Object

Math.random()方法会返回介于0(包含)~1(不包含)之间的一个随机数。 舍掉小数点后的数值的方法有很多,如parseInt(),Math.ceil(),Math.flo

一、概述 所有语言中的代理,其本实现的是对原对象的操作的拦截和一些自定义行为。 二、语法  const p = new Proxy(target, handler) 1、target 可以是任何类型的

1、(前端)跨域请求是携带Cookie ,需要配置axios.defaults.withCredentials = true;2、(后端)响应需要携带响应头 Access-Control-Allow-

一、概述 函数实际上是对象,每个函数都是Function类型的实例,而且与其他引用类型一样具有属性和方法,因此函数名实际上也是一个指向函数对象的指针,因为函数名是指针,所以js没有函数重载。 func