js判断浏览器类型

简介:

其实jQuery 也可以判断浏览器类型,但是从1.9之后就删除了$.browser 

所以我没有使用jQuery

测试页面:

Html代码   收藏代码
  1. <html>  
  2. <head lang="en">  
  3.     <meta charset="UTF-8">  
  4.     <title></title>  
  5.     <script type="text/javascript" src="js/jquery-1.10.1.js"></script>  
  6.     <script type="text/javascript" src="js/common_util.js"></script>  
  7.     <script type="text/javascript">  
  8.   
  9.   
  10.         window.onload=function(){  
  11. //            var brow = $.browser;  
  12. //            alert(brow);  
  13.             var browser = com.whuang.hsj.getBrowserVersion(true);  
  14.             document.write(browser.ver+"<br>");  
  15.             document.write("language:"+browser.lang);  
  16.         }  
  17.   
  18.     </script>  
  19. </head>  
  20. <body>  
  21.   
  22. </body>  
  23. </html>  

(1) 在chrome中运行结果:

 说明:中间一行的"36.0.1985.143"是浏览器版本号

 

(2)在IE8中运行结果:

 

 

(3)在IE9中运行结果:

 

 

(4)在火狐中运行结果:

但是在火狐中的版本号不对,js获取的版本号是33.0 ,但是应该是33.1,如下图:

 暂时不知道什么原因,不过影响不大

 

核心方法:com.whuang.hsj.getBrowserVersion

参数说明:只有一个参数,用于打印浏览器名称.用于上线的项目时应该设置为false.

返回值说明:

返回的是一个对象.

Js代码   收藏代码
  1. var browser = com.whuang.hsj.getBrowserVersion(false);  

 

可以通过browser.firefox 判断是否是火狐浏览器,通过browser.chrome 判断是否是谷歌浏览器,等等.

browser.lang是浏览器语言,取值范围是['zh-cn','zh','en-us','en']

注意:browser.lang的值均是小写,并且zh-cn 是中划线,不是下划线.

 

com.whuang.hsj.getBrowserVersion见附件common_util.zip

com.whuang.hsj.getBrowserVersion实现

Js代码   收藏代码
  1. /*** 
  2.  * get browser type and browser version and language 
  3.  * @param write22 
  4.  * @returns {{}} 
  5.  */  
  6. com.whuang.hsj.getBrowserVersion=function(write22){  
  7.     var browser = {};  
  8. //    console.dir(navigator);  
  9.     var userAgent = navigator.userAgent.toLowerCase();  
  10.     /*for(osvId in navigator){ 
  11.         var value222=navigator[osvId]; 
  12.         document.writeln(osvId+":&nbsp;"+value222+'<br>'); 
  13.     }*/  
  14.     var lang22=navigator.language;  
  15. //    document.writeln(userAgent+'<br>');  
  16. //    document.writeln(navigator.appCodeName+'<br>');  
  17.     var s;  
  18.     (s = userAgent.match(/msie ([\d.]+)/)) ? browser.ie = s[1] : (s = userAgent.match(/firefox\/([\d.]+)/)) ? browser.firefox = s[1] : (s = userAgent.match(/chrome\/([\d.]+)/)) ? browser.chrome = s[1] :  
  19.         (s = userAgent.match(/opera.([\d.]+)/)) ? browser.opera = s[1] : (s = userAgent.match(/version\/([\d.]+).*safari/)) ? browser.safari = s[1] : 0;  
  20.     var version = "";  
  21.     if (browser.ie) {  
  22.         version =  browser.ie;  
  23.         if(write22 && write22!=false && write22!='false'){  
  24.             document.writeln('IE<br>');  
  25.         }  
  26.         if(!browser.lang ||browser.lang==undefined){  
  27.             lang22=navigator.browserLanguage;  
  28.             browser.systemLanguage=navigator.systemLanguage ;  
  29.             browser.userLanguage=navigator.userLanguage;  
  30.         }  
  31.     }  
  32.     else  
  33.     if (browser.firefox) {  
  34.         version = browser.firefox;  
  35.         browser.mozilla=browser.firefox;  
  36.         if(write22 && write22!=false && write22!='false'){  
  37.             document.writeln('firefox<br>');  
  38.         }  
  39.     }  
  40.     else  
  41.     if (browser.chrome) {  
  42.         version = browser.chrome;  
  43.         if(write22 && write22!=false && write22!='false'){  
  44.             document.writeln('chrome<br>');  
  45.         }  
  46.     }  
  47.     else  
  48.     if (browser.opera) {  
  49.         version =  browser.opera;  
  50.         if(write22 && write22!=false && write22!='false'){  
  51.             document.writeln('opera<br>');  
  52.         }  
  53.     }  
  54.     else  
  55.     if (browser.safari) {  
  56.         version =  browser.safari;  
  57.         if(write22 && write22!=false && write22!='false'){  
  58.             document.writeln('Safari<br>');  
  59.         }  
  60.     }  
  61.     else {  
  62.         version = 'unknown browser';  
  63.     }  
  64.     browser.ver=version;  
  65.     if(lang22 && lang22!=undefined)  
  66.     {  
  67.         browser.lang=lang22.toLowerCase();  
  68.     }  
  69.     return browser;  
  70. }  

 参考:

获取鼠标的位置/坐标

js 常见问题 4

相关文章
|
10月前
|
编解码 JavaScript 前端开发
【Java进阶】详解JavaScript的BOM(浏览器对象模型)
总的来说,BOM提供了一种方式来与浏览器进行交互。通过BOM,你可以操作窗口、获取URL、操作历史、访问HTML文档、获取浏览器信息和屏幕信息等。虽然BOM并没有正式的标准,但大多数现代浏览器都实现了相似的功能,因此,你可以放心地在你的JavaScript代码中使用BOM。
308 23
|
Web App开发 前端开发 JavaScript
折腾之王:JavaScript之父Brave浏览器与BAT的诞生
2015年,JavaScript之父Brendan Eich再次创业,推出Brave浏览器和加密货币Basic Attention Token(BAT),旨在颠覆传统广告行业。Brave屏蔽广告、保护隐私,加载速度快;BAT则通过奖励机制让用户、内容创作者和广告主三方受益。尽管面临用户习惯和巨头竞争的挑战,Brave已拥有超4000万月活跃用户,成为全球增长最快的隐私浏览器,引领Web3生态发展。
464 22
折腾之王:JavaScript之父Brave浏览器与BAT的诞生
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
333 63
|
移动开发 JavaScript 前端开发
一些处理浏览器兼容性问题的JavaScript库
这些库在处理浏览器兼容性问题方面都有着各自的特点和优势,可以根据具体的需求和项目情况选择合适的库来使用,从而提高代码的兼容性和稳定性,为用户提供更好的体验。同时,随着浏览器技术的不断发展,还需要持续关注和学习新的兼容性解决方案。
424 58
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
380 57
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
411 2
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
394 4
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
260 5
在浏览器执行js脚本的两种方式
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
1960 1
|
机器学习/深度学习 人工智能 前端开发
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
使用TensorFlow.js在浏览器中进行情感分析是一个非常实用的应用场景。TensorFlow.js 是一个用于在JavaScript环境中训练和部署机器学习模型的库,使得开发者能够在客户端直接运行复杂的机器学习任务。对于情感分析,我们可以使用预先训练好的模型来识别文本中的积极、消极或中性情感。
598 4
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统