使用JavaScript检测浏览器

使用JavaScript检测浏览器

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

    假设你真的需要检测浏览器的类型,使用JavaScript非常easy达到。

 

Preview image of browser detection demo page.

View Demo

Download Source from GitHub

    JavaScript有一个navigator的标准对象,它包括了关于浏览器使用的信息。

    navigator对象由非常多属性。可是userAgent属性—一个字符串就已经包括了浏览器、操作系统以及其他我们须要的全部信息。

    假设须要显示navigator.userAgent的值。仅仅须要选择以下的一种的方式就能够:


Alert

// Display in an alert box
alert(navigator.userAgent);

使用JavaScript检测浏览器

火狐30在win7上的navigator.userAgent值。

Document.write

// Write it in the HTML document
document.write(navigator.userAgent); 

console.log

// Display it in the browser's developer tool
// This is ideal
// Use console.log() when you're developing/experimenting JavaScript
console.log(navigator.userAgent);

对于IE11,输出例如以下

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MASM; .NET4.0C; .NET4.0E; rv:11.0) like Gecko

    正如你看到的。使用userAgent.navigator的问题在于。它是一串非常长的字符串,而且可读性不好。

所以。假设我想得到想要的信息,或者把它给用户看,我首先,我要解析这个字符串。问题是我对于正則表達式的使用(在其它一些方面)显得无能为力。所以我非常乐意使用Darcy Clarke写的Detect.js JavaScript 程序库。

    Detect.js可以将一个字符串解析为一个可读和可操作的JavaScript对象。为了显示浏览器的名称、版本号以及所用的操作系统,可參考例如以下代码:

// Create 'user' object that will contain Detect.js stuff
// Call detect.parse() with navigator.userAgent as the argument
var user = detect.parse(navigator.userAgent);

// Display some property values in my browser's dev tools console
console.log(
  user.browser.family
  user.browser.version
  user.os.name
);

Firebug, 将看到:

Firefox 30 Windows 7

Console log of Firebug.

同一台机器上。在Google开发人员工具中的结果是:

Chrome 35 Windows 7

console.log() of Chrome DevTools

能够使用条件语句来针对一个特定的浏览器,比如:仅仅想针对Safari桌面浏览器

if (user.browser.family === 'Safari') {
  alert('You\'re using the Safari browser');   
}

Chrome DevTools console log.

全部被解析过的属性表:

使用JavaScript检测浏览器

注意:假设属性不能被解析,则其值为null或者undefined。假设你想把这些信息给你的用户看,那么你就应该对于可能出现null或者undefined的值地方条件推断。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117066.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java正则表达式语法详解及其使用代码实例[通俗易懂]

    java正则表达式语法详解及其使用代码实例[通俗易懂]java正则表达式语法详解及其使用代码实例http://www.zuidaima.com/share/1835085544524800.htm

    2022年7月19日
    25
  • httpclient3与httpclient4不同版本使用方法[通俗易懂]

    httpclient3与httpclient4不同版本使用方法[通俗易懂]httpComponentsHttpClient4.x获取httpClientCloseableHttpClienthttpClient=HttpClients.custom()   .setMaxConnTotal(config.maxConnTotal)   .setMaxConnPerRoute(config.maxConnPerRoute)   .setDef…

    2022年7月22日
    7
  • java取整方法(java 取整)

    https://blog.csdn.net/foart/article/details/4295645

    2022年4月17日
    32
  • 使用@DateTimeFormat注解的时候报错

    使用@DateTimeFormat注解的时候报错使用 Springboot 框架搭建项目 DateTimeForm 作用是前后到后台的时间格式的转换 使用 yyyy MM dd 格式的字符串传入日期类型数据是入参转换没有问题 使用 yyyy MM ddHH mm ss 格式时间字符串就会报错 Datapubliccl privateDatei 报错信息 messag

    2025年11月1日
    3
  • matlab 关闭axis的图,使用MATLAB中axis实现图形坐标控制[通俗易懂]

    matlab 关闭axis的图,使用MATLAB中axis实现图形坐标控制[通俗易懂]Matlab对图形风格的控制比较完备。一方面,在最通用的层面上,采用了一系列考虑周全的默认设置。另一方面,可用户根据需要去自己设置。坐标控制指令axis使用比较简单,用于控制坐标的可视,取向、取值范围和轴的高宽比等。代码实现程序如下:clearall;closeall;clc;t=0:2*pi/99:2*pi;x=1.5*cos(t);y=3.25*sin(t);subplot(2,3,…

    2022年5月20日
    46
  • softmax、softmax损失函数、cross-entropy损失函数[通俗易懂]

    softmax、softmax损失函数、cross-entropy损失函数[通俗易懂]softmaxsoftmax,顾名思义,就是soft版本的max。在了解softmax之前,先看看什么是hardmax。hardmax就是直接选出一个最大值,例如[1,2,3]的hardmax就是3,而且只选出最大值,非黑即白,但是实际中这种方式往往是不合理的,例如对于文本分类来说,一篇文章或多或少包含着各种主题信息,我们更期望得到文章属于各种主题的概率值,而不是简单直接地归类为某一种唯一的主题。这里就需要用到soft的概念,即不再唯一地确定某一个最大值,而是为每个输出分类

    2022年6月26日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号