博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用JavaScript检测浏览器
阅读量:4286 次
发布时间:2019-05-27

本文共 1578 字,大约阅读时间需要 5 分钟。

    如果你真的需要检测浏览器的类型,用JavaScript很容易实现。

 

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

    navigator对象由很多属性,但是userAgent属性---一个字符串就已经包含了浏览器、操作系统以及其它我们需要的所有信息。

    如果需要显示navigator.userAgent的值,只需要选择下面的一种的方式就可以:

Alert

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

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

Document.write

// Write it in the HTML documentdocument.write(navigator.userAgent);
console.log

// Display it in the browser's developer tool// This is ideal// Use console.log() when you're developing/experimenting JavaScriptconsole.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写的 JavaScript 程序库。

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

// Create 'user' object that will contain Detect.js stuff// Call detect.parse() with navigator.userAgent as the argumentvar user = detect.parse(navigator.userAgent);// Display some property values in my browser's dev tools consoleconsole.log(  user.browser.family  user.browser.version  user.os.name);

在 , 将看到:

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.

所有被解析过的属性表:

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

你可能感兴趣的文章
WKWebView 和UIWebView、网页缓存、网路请求缓存
查看>>
Javascript (六)高级之ECMAScript
查看>>
iOS之UISCrollView--原理
查看>>
iOS 之NSRange实现小数向上取整
查看>>
PHP 之XML编程,注释总结
查看>>
iOS之SHA1算法
查看>>
iOS之hHTTPS的使用
查看>>
iOS之返回按钮
查看>>
PHP 之smarty、webservice、RSS订阅
查看>>
iOS之静态库
查看>>
iOS 之适配字体的几中方法
查看>>
iOS之view的背景绘制渐变色、文字渐变
查看>>
javascript之(四)作用域链,闭包
查看>>
javascript之(五)面下个对象
查看>>
javascript之(六)正则表达式
查看>>
javascript之贪吃蛇案例
查看>>
javascript 之AJAX(一)
查看>>
javascript之AJAX(二)json
查看>>
nodejs之(一)安装配置
查看>>
PHP之LAMP、linux终端命令
查看>>