很多时候做兼容性的时候都要用到获取当前浏览器的版本和内核类型

if (!browser.ie && !browser.mac) {
var UA = navigator.userAgent.toLowerCase().toString();
//判断是不是IE内核下的非IE版本
if ((UA.indexOf('360ee') > -1) || (UA.indexOf('360se') > -1) || (UA.indexOf('se') > -1) ||
(UA.indexOf('aoyou') > -1)
|| (UA.indexOf('theworld') > -1) || (UA.indexOf('worldchrome') > -1) || (UA.indexOf
('greenbrowser') > -1)
|| (UA.indexOf('baidu') > -1) || (UA.indexOf('qqbrowser') > -1)) {
//是的话切换兼容模式
window.open("publicPage/point-se.aspx");
}
else {
//不是的话,建议更换浏览器
alert('建议换成IE内核的浏览器');
}
}
else {
//判断IE的版本型号
if ( (browser.version == 10 && browser.ie10Compat) || (browser.version == 11 &&
browser.ie11Compat)) {
window.open("publicPage/point.aspx");
}
/*
* @desc   判断浏览器的版本以及浏览器内核
* @author wangyanling
* @date   2014年7月4日
*/
var browser = function () {
var agent = navigator.userAgent.toLowerCase(),
opera = window.opera,
browser = {
//检测当前浏览器是否为IE
ie: /(msie\s|trident.*rv:)([\w.]+)/.test(agent),
//检测当前浏览器是否为Opera
opera: (!!opera && opera.version),
//检测当前浏览器是否是webkit内核的浏览器
webkit: (agent.indexOf(' applewebkit/') > -1),
//检测当前浏览器是否是运行在mac平台下
mac: (agent.indexOf('macintosh') > -1),
//检测当前浏览器是否处于“怪异模式”下
quirks: (document.compatMode == 'BackCompat')
};
//检测当前浏览器内核是否是gecko内核
browser.gecko = (navigator.product == 'Gecko' && !browser.webkit && !browser.opera && !
browser.ie);
var version = 0;
// Internet Explorer 6.0+
if (browser.ie) {
var v1 = agent.match(/(?:msie\s([\w.]+))/);
var v2 = agent.match(/(?:trident.*rv:([\w.]+))/);
if (v1 && v2 && v1[1] && v2[1]) {
version = Math.max(v1[1] * 1, v2[1] * 1);
} else if (v1 && v1[1]) {
version = v1[1] * 1;
} else if (v2 && v2[1]) {
version = v2[1] * 1;
} else {
version = 0;
}
//检测浏览器模式是否为 IE11 兼容模式
browser.ie11Compat = document.documentMode == 11;
//检测浏览器模式是否为 IE9 兼容模式
browser.ie9Compat = document.documentMode == 9;
//检测浏览器模式是否为 IE10 兼容模式
browser.ie10Compat = document.documentMode == 10;
//检测浏览器是否是IE8浏览器
browser.ie8 = !!document.documentMode;
//检测浏览器模式是否为 IE8 兼容模式
browser.ie8Compat = document.documentMode == 8;
//检测浏览器模式是否为 IE7 兼容模式
browser.ie7Compat = ((version == 7 && !document.documentMode) || document.documentMode ==
7);
//检测浏览器模式是否为 IE6 模式 或者怪异模式
browser.ie6Compat = (version < 7 || browser.quirks);
browser.ie9above = version > 8;
browser.ie9below = version < 9;
}
// Gecko.
if (browser.gecko) {
var geckoRelease = agent.match(/rv:([\d\.]+)/);
if (geckoRelease) {
geckoRelease = geckoRelease[1].split('.');
version = geckoRelease[0] * 10000 + (geckoRelease[1] || 0) * 100 + (geckoRelease[2] ||
0) * 1;
}
}
//检测当前浏览器是否为Chrome, 如果是,则返回Chrome的大版本号
if (/chrome\/(\d+\.\d)/i.test(agent)) {
browser.chrome = +RegExp['\x241'];
}
//检测当前浏览器是否为Safari, 如果是,则返回Safari的大版本号
if (/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(agent) && !/chrome/i.test(agent)) {
browser.safari = +(RegExp['\x241'] || RegExp['\x242']);
}
// Opera 9.50+
if (browser.opera)
version = parseFloat(opera.version());
// WebKit 522+ (Safari 3+)
if (browser.webkit)
version = parseFloat(agent.match(/ applewebkit\/(\d+)/)[1]);
//检测当前浏览器版本号
browser.version = version;
return browser;
}();

参考:http://hao2013.cn/?id=18

浏览器内核检测 获取当前浏览器的内核相关推荐

  1. linux内核态获取ip地址,Linux内核支持动态获取IP地址

    配置选项: NFS: Network File System PNP: Plug-and-Play CONFIG_ROOT_NFS 若想要Linux box通过NFS依赖网络上的其他计算机来mount ...

  2. linux内核下获取系统时间,linux内核获取当前系统时间

    转载自:http://blog.csdn.net/heanyu/article/details/6552578 7.2. 获知当前时间 内核代码能一直获取一个当前时间的表示, 通过查看 jifies ...

  3. linux内核中获取虚拟地址api,Linux内核-系统调用

    Linux内核-系统调用 1.与内核通信 #系统调用在用户空间进程和硬件设备之间添加了一个中间层 作用:1.为用户空间提供了一种硬件的抽象接口 2.系统调用保证了系统的稳定和安全 3.出于每一个进程都 ...

  4. js浏览器和浏览器插件检测的方法总结

    文/玄魂 前言 首次面对题目所示的需求的时候,头脑中没有任何概念,于是搜索,所有的中文结果都不是很满意.所幸老外的几篇文章还是很有参考价值,虽然最终没有解决我的问题,但是我还是把这几篇文章的内容作了抽 ...

  5. 浏览器内核检测(Trident,Gecko,WebKit,Blink)

    浏览器内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有 10 多种,但是常见的浏览器内核可以分这四种:Trident.Gecko.Blink.Webkit. 网站地址:http://my ...

  6. javascript高级程序设计 --- 浏览器检测、操作系统检测、浏览器内核检测

    JavaScript 包含一个名为 Navigator 的对象,它就可以完成上述的任务. Navigator 包含了有关访问者浏览器的信息,包括浏览器类型.版本等等 Navigator 对象 Java ...

  7. 【转载】浏览器测试工具有哪些 浏览器安全性能内核兼容测试工具推荐

    浏览器测试工具有哪些 浏览器安全性能内核兼容测试工具推荐 时间:2019-03-01 15:12  来源:未知   作者:浏览器家园    浏览器测试工具有哪些 浏览器安全性能内核兼容测试工具推荐 好 ...

  8. java浏览器内核_深入理解浏览器内核 - 概述

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 继"汉芯"事件造假之后,近期"红 ...

  9. Android 浏览器内核浅谈,基于WebKit内核的Android手机浏览器的性能研究与加载优化...

    南京邮电大学 硕士 2017 基于WebKit内核的Android手机浏览器的性能研究与加载优化 Performance Research and Load Optimization of Andro ...

最新文章

  1. TensorFlow优化器及用法
  2. WCF(Sender) to MSMQ to WCF(Receiver)
  3. Otter-入门篇4(单向同步实践)
  4. Java之——利用Comparator接口对多个排序条件进行处理
  5. 程序员面试题精选100题(52)-C++面试题(1)
  6. M2Crypto/__m2crypto.so: undefined symbol: SSLv3_method
  7. java中timer类包_Java~util包中Timer的使用, 演示cancel方法 和 对比schedule和scheduleAtFixedRate方法...
  8. Linux系统(Centos)下安装nodejs并配置环境
  9. Java 9终于要包含Jigsaw项目了
  10. 嵌入式Linux内核优化裁剪
  11. C++进阶—— helper function 的设计与实现
  12. Spring MVC Interceptor
  13. 和ufs_宏旺半导体告诉你手机eMMC和UFS到底是什么意思?有什么区别?
  14. 方便好用的论文管理软件EndNote X9 + PDF阅读编辑器Adobe Acrobat DC(2)
  15. php 线性回归算法,线性回归方程计算器
  16. android应用市场 更新,当贝市场(com.dangbeimarket) - 4.2.9 - 应用 - 酷安
  17. Linux中如何查看命令帮助手册
  18. 微信小程序token过期后重新执行失效的请求封装(用户无感刷新token)
  19. strcpy 和strncpy 的代码和区别
  20. zabbix结合qqmail发送告警信息

热门文章

  1. Realm 数据库使用
  2. 2022-2028年中国房车旅游行业市场调查研究及投资策略研究报告
  3. 利用taichi写一个最简单的SPH(光滑粒子动力学)
  4. Django基础必备三神装(HttpResponse、render,、redirect)(2)
  5. C++课程设计之高校学生简单信息管理系统
  6. vue3中shallowReactive对比reactive、shallowRef对比ref以及triggerRef作用
  7. [推荐] “一专多能”——记公安大学CSDN俱乐部主席李康计算机专业知识讲座
  8. python中从小到大排序的函数_深入理解Python中的排序函数
  9. LabVIEW串口通信实际操作
  10. 迪赛智慧数——柱状图(多色柱状图):近十年上榜中国最具幸福感城市次数