利用Window.navigator识别当前脚本的运行环境

宿主对象window.navigator返回的是一个navigator对象,其中包含了有关浏览器的一些信息,可以用来查询运行当前脚本的环境(应用程序)的相关信息。
navigator对象中包含的主要属性如下图所示:


Chrome 环境下

1. Navigator对象的主要属性

  • appCodeName
    功能:只读属性,返回浏览器的代码名;
    语法:navigator.appCodeName
    在所有以Netscape代码为基础的浏览器中,它的值是"Mozilla",包括:IE、chrome、safari。
  • appName
    功能:只读属性,返回浏览器的名称;
    语法:navigator.appName
    在chrome、safari的里面都是返回"Netscape";
  • platform
    功能:只读属性,返回浏览器所在的系统平台类型;
    语法:navigator.platform
    platform 可能是: "Win32", "Linux i686", "MacPPC", "MacIntel" 等,
  • product
    功能:只读属性,返回当前浏览器的产品名称
    Gecko 和 WebKit 浏览器返回 "Gecko" 作为该属性的值;
  • userAgent (重点)
    功能:只读属性,返回当前浏览器的用户代理;如下所示:
     //Chrome
     Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
    //Safari
     Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/604.1.38 (KHTML, like Gecko)Version/11.0 Safari/604.1.38
    //ios (iphoneX)
     Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like     Gecko) Version/11.0 Mobile/15A372 Safari/604.1
    //ipad
     Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1
    // Android (Galaxy S5)
     Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36
    //Windows phone
     Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)
    
    以上大部分数据是在chrome开发者工具或者ios模拟器模拟的结果。

2. 应用实例

   <script>
     var ua = navigator.userAgent,
       ios = /iPhone|iP[oa]d/.test(ua),
       android = /Android/.test(ua);
       windows_phone = /Windows Phone/.test(ua);
     console.log(`ua[${ua}] ios[${ios}] android[${android}] windows_phone[${windows_phone}]`);
     if (android || ios || windows_phone) {
       $("#demo").css("display","none");
     }else {
       $("#demo").css("display","block");
     }
   </script>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 目录: Android:Android 0.*Android 1.*Android 2.*Android 3.*A...
    敲代码的令狐葱阅读 9,823评论 0 2
  • Author| 尘世gu行转载请注明出处 urllib2 是 Python2.7 自带的模块(不需要下载,导入即可...
    尘世gu行阅读 1,418评论 0 1
  • 要求:抓取喜马拉雅音频存储到本地D:\temp_ximalaya_audio,并按节目和章节分类存储。 特殊说明:...
    流星一剑阅读 4,218评论 0 1
  • 在互联网上抓取数据的时候,经常需要程序伪装成浏览器来避开服务端的一些限制,这是收集的一些浏览器的User-Agen...
    venter_zhu阅读 12,164评论 0 14
  • 在互联网上抓取数据的时候,经常需要程序伪装成浏览器来避开服务端的一些限制,这是收集的一些浏览器的User-Agen...
    cz玫瑰巷阅读 8,747评论 0 0

友情链接更多精彩内容