这篇文章主要介绍了浏览器检测 JS 代码,兼容目前各大主流浏览器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
- var BrowserMatch = {
- init: function() {
- this.browser = this.getBrowser().browser || "An Unknown Browser";
- this.version = this.getBrowser().version || "An Unknown Version";
- this.OS = this.getOS() || "An Unknown OS";
- },
- getOS: function() {
- if (navigator.platform.indexOf("Win") != -1) return "Windows";
- if (navigator.platform.indexOf("Mac") != -1) return "Mac";
- if (navigator.platform.indexOf("Linux") != -1) return "Linux";
- if (navigator.userAgent.indexOf("iPhone") != -1) return "iPhone/iPod";
- },
- getBrowser: function() {
- var rMsie = /(msie\s|trident\/7)([\w\.]+)/;
- var rTrident = /(trident)\/([\w.]+)/;
- var rFirefox = /(firefox)\/([\w.]+)/;
- var rOpera = /(opera).+version\/([\w.]+)/;
- var rNewOpera = /(opr)\/(.+)/;
- var rChrome = /(chrome)\/([\w.]+)/;
- var rSafari = /version\/([\w.]+).*(safari)/;
- var ua = navigator.userAgent.toLowerCase();
- var matchBS, matchBS2;
- matchBS = rMsie.exec(ua);
- if (matchBS != null) {
- matchBS2 = rTrident.exec(ua);
- if (matchBS2 != null) {
- switch (matchBS2[2]) {
- case "4.0":
- return {
- browser:
- "IE",
- version: "8"
- };
- break;
- case "5.0":
- return {
- browser:
- "IE",
- version: "9"
- };
- break;
- case "6.0":
- return {
- browser:
- "IE",
- version: "10"
- };
- break;
- case "7.0":
- return {
- browser:
- "IE",
- version: "11"
- };
- break;
- default:
- return {
- browser:
- "IE",
- version: "Undefined"
- };
- }
- } else {
- return {
- browser: "IE",
- version: matchBS[2] || "0"
- };
- }
- }
- matchBS = rFirefox.exec(ua);
- if ((matchBS != null) && (!(window.attachEvent)) && (!(window.chrome)) && (!(window.opera))) {
- return {
- browser: matchBS[1] || "",
- version: matchBS[2] || "0"
- };
- }
- matchBS = rOpera.exec(ua);
- if ((matchBS != null) && (!(window.attachEvent))) {
- return {
- browser: matchBS[1] || "",
- version: matchBS[2] || "0"
- };
- }
- matchBS = rChrome.exec(ua);
- if ((matchBS != null) && ( !! (window.chrome)) && (!(window.attachEvent))) {
- matchBS2 = rNewOpera.exec(ua);
- if (matchBS2 == null) {
- return {
- browser: matchBS[1] || "",
- version: matchBS[2] || "0"
- };
- } else {
- return {
- browser: "Opera",
- version: matchBS2[2] || "0"
- };
- }
- }
- matchBS = rSafari.exec(ua);
- if ((matchBS != null) && (!(window.attachEvent)) && (!(window.chrome)) && (!(window.opera))) {
- return {
- browser: matchBS[2] || "",
- version: matchBS[1] || "0"
- };
- }
- }
- };
- BrowserMatch.init();
调用方法:(首先得引入 js 文件,大家应该都懂的)
获取浏览器名: BrowserMatch.browser;
获取浏览器版本: BrowserMatch.version;
获取所处操作系统: BrowserMatch.OS;
来源: http://www.phperz.com/article/17/0219/267057.html