JS判断手机浏览器

简介: 原文:JS判断手机浏览器判断原理: JavaScript是前端开发的主要语言,我们可以通过 编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另 一种是通过分析浏览器的userAgent属性来判断的。
原文: JS判断手机浏览器

判断原理:

JavaScript是前端开发的主要语言,我们可以通过 编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另 一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的 版本一般只能通过分析浏览器的userAgent才能知道。

 

浏览器类型

⑴浏览器特有属性

⑵根据userAgent

浏览器版本

⑴根据userAgent

 

对于手机浏览器判断

1.如何判断是否为移动终端 利用正则match

匹配navigator.userAgent是否含有字符串AppleWebKit*****Mobile

安卓qq浏览器HD版 只有AppleWebKit

2手机语言版本的判断

使用navigator.browserLanguage 便可得出windows phone语言版本,
当然可恶的小小手机语言版本也有兼容性的差异,兼容Mozilla,以及AppleWebKit内核的浏览器访问其语言版本,它会列出 navigator.language

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<script type= "text/javascript" >
/*
* 智能机浏览器版本信息:
*
*/
   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.*/)||!!u.match(/AppleWebKit/), //是否为移动终端
                 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 || u.indexOf( 'Mac' ) > -1, //是否为iPhone或者QQHD浏览器
                 iPad: u.indexOf( 'iPad' ) > -1, //是否iPad
                 webApp: u.indexOf( 'Safari' ) == -1 //是否web应该程序,没有头部与底部
             };
          }(),
          language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
document.writeln( "语言版本: " +browser.language);
document.writeln( " 是否为移动终端: " +browser.versions.mobile);
document.writeln( " ios终端: " +browser.versions.ios);
document.writeln( " android终端: " +browser.versions.android);
document.writeln( " 是否为iPhone: " +browser.versions.iPhone);
document.writeln( " 是否iPad: " +browser.versions.iPad);
document.writeln(navigator.userAgent);
 
</script>

比较特别的地方

UC浏览器没有安卓报头,只返回:linux ,这里粗略的根据linux来判断是安卓(前提必须满足是移动终端,UC这点是满足的)

安卓QQ浏览器HD版检测的结果是:mac, Safari,这个很是变态,自己看着处理吧

3个检测浏览器User-Agent信息的网站


三个在线网站,通过手机浏览器就可以在线检测,很是方便

1. http://whatsmyuseragent.com/

2. http://whatsmyua.com/

3. http://www.useragentstring.com/

 

参考文章:

Pc浏览器

http://www.jb51.net/article/17302.htm

http://www.bairuiw.com/front-end-skill/1346.html

手机浏览器

http://www.iundefined.com/development/344.html

http://www.cnblogs.com/dowinning/archive/2011/07/22/2113747.html

http://www.cnblogs.com/dowinning/archive/2011/07/22/2113981.html

http://luckerme.com/archives/1015.html


 

原文:

http://www.cnblogs.com/phphuaibei/archive/2011/12/09/2282570.html

目录
相关文章
|
1月前
|
Web App开发 前端开发 JavaScript
折腾之王:JavaScript之父Brave浏览器与BAT的诞生
2015年,JavaScript之父Brendan Eich再次创业,推出Brave浏览器和加密货币Basic Attention Token(BAT),旨在颠覆传统广告行业。Brave屏蔽广告、保护隐私,加载速度快;BAT则通过奖励机制让用户、内容创作者和广告主三方受益。尽管面临用户习惯和巨头竞争的挑战,Brave已拥有超4000万月活跃用户,成为全球增长最快的隐私浏览器,引领Web3生态发展。
114 22
折腾之王:JavaScript之父Brave浏览器与BAT的诞生
|
2月前
|
JavaScript 前端开发 异构计算
兼容移动手机的js拖拽插件Draggin.js
兼容移动手机的js拖拽插件Draggin.js
63 1
|
3月前
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
67 1
|
3月前
|
移动开发 JavaScript 前端开发
一些处理浏览器兼容性问题的JavaScript库
这些库在处理浏览器兼容性问题方面都有着各自的特点和优势,可以根据具体的需求和项目情况选择合适的库来使用,从而提高代码的兼容性和稳定性,为用户提供更好的体验。同时,随着浏览器技术的不断发展,还需要持续关注和学习新的兼容性解决方案。
131 48
|
3月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
125 63
|
3月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
608 1
|
3月前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
3月前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
520 9
|
4月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
245 0
|
4月前
|
JavaScript 前端开发 开发者
JavaScript 浏览器控制台的使用
JavaScript 浏览器控制台的使用
86 0

热门文章

最新文章