来处理浏览器兼容,JS获取浏览器版本及名称实现函数

您可能感兴趣的文章:

  • javascript获取web应用根目录的方法
  • js类中获取外部函数名的方法
  • js获取域名的方法
  • js
    获取站点应用名的简单实例

 代码如下

复制代码 代码如下:

复制代码

// 获取浏览器名称及版本信息
function appInfo(){
var browser = {
msie: false, firefox: false, opera: false, safari: false,
chrome: false, netscape: false, appname: ‘unknown’, version: 0
},
userAgent = window.navigator.userAgent.toLowerCase();
if ( /(msie|firefox|opera|chrome|netscape)\D+(\d[\d.]*)/.test(
userAgent ) ){
browser[RegExp.$1] = true;
browser.appname = RegExp.$1;
browser.version = RegExp.$2;
} else if ( /version\D+(\d[\d.]*).*safari/.test( userAgent ) ){
// safari
browser.safari = true;
browser.appname = ‘safari’;
browser.version = RegExp.$2;
}
return browser;
}
// 调用示例
var myos = appInfo();
// 如果当前浏览器是IE,弹出浏览器版本,否则弹出当前浏览器名称和版本
if ( myos.msie ){
alert( myos.version );
} else {
alert( myos.appname + myos.version );
}

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
02 <html xmlns=“;
03 <head>
04 <meta http-equiv=“Content-Type” content=“text/html; charset=utf-8″
/>
05 <title>无标题文档</title>
06
07 <script type=“text/javascript”>
08     function isIE(){
09         return navigator.appName.indexOf(“Microsoft Internet
Explorer”)!=-1 && document.all;
10     }
11     function isIE6() {
12         return
navigator.userAgent.split(“;”)[1].toLowerCase().indexOf(“msie
6.0″)==“-1″?false:true;
13     }
14     function isIE7(){
15         return
navigator.userAgent.split(“;”)[1].toLowerCase().indexOf(“msie
7.0″)==“-1″?false:true;
16     }
17     function isIE8(){
18         return
navigator.userAgent.split(“;”)[1].toLowerCase().indexOf(“msie
8.0″)==“-1″?false:true;
19     }
20     function isNN(){
21        return navigator.userAgent.indexOf(“Netscape”)!=-1;
22     }
23     function isOpera(){
24         return navigator.appName.indexOf(“Opera”)!=-1;
25     }
26     function isFF(){
27         return navigator.userAgent.indexOf(“Firefox”)!=-1;
28     }
29     function isChrome(){
30         return navigator.userAgent.indexOf(“Chrome”) > -1;
31     }
32
33     function showResult(){
34         if(isChrome()){
35             alert(“这是谷歌浏览器”);
36         }
37
38         if(isIE()){
39             alert(“这是IE”);
40         }
41
42         if(isIE6()){
43             alert(“这是isIE6″);
44         }
45
46         if(isIE7()){
47             alert(“这是isIE7″);
48         }
49
50         if(isIE8()){
51             alert(“这是IisIE8″);
52         }
53
54         if(isNN()){
55             alert(“这是isNN”);
56         }
57
58         if(isOpera()){
59             alert(“这是isOpera”);
60         }
61
62         if(isFF()){
63             alert(“这是isFF”);
64         }
65     }
66 </script>
67
68
69 </head>
70
71 <body >
72 <center><input type=“button” onclick=“showResult()”
name=“check” value=“检测” style=“width:200px;
height:30px;”/></center>
73 </body>
74 </html>

复制代码 代码如下:

特征表现:均以 “mozilla/” 开头,”msie x.0;” 中的x表示其版本;
判断方法:粗略判断可以只检索 “msie x.0;” 字符串即可,严格判断可检索
“mozilla/x.0 (compatibal; msie x.0; windows nt”,不过一般没有这个必要
Windows版Firefox:
特征表现:以”mozilla/x.0″开头,包含”windows nt”,”gecko/”和”firefox/”

判断方法:粗略判断可以只检索 “firefox/”和”windows nt”
字符串,严格判断可以检索”mozilla/” ,”windows nt”,”gecko/”和”firefox/”
四个字符串;
Windows版Chrome:
特征表现: 以”mozilla/x.0″开头,包含”windows
nt”,”chrome/”,同时包含”applewebkit/”,”safari/”;
判断方法:粗略判断可以只检索 “windows
nt”和”chrome/”字符串,严格判断可以同时检索 “mozilla/” ,”windows
nt”,”applewebkit/”,”safari/”,”chrome/” 五个字符串;
Windows版Opera:
特征表现:以”opera/”开头,含有”windows nt”,”presto/” 字符串;
判断方法:粗略判断只检索 “windows nt”和”opera/”字符串,严格判断同时检索
“opera/”,”windows nt” 和 “presto/”;
Windows版Safari:
特征表现:以”mozilla/”开头,同时含有”windows
nt”,”applewebkit/”,”safari/”;
判断方法:粗略判断可以检索含有 “windows nt”,”safari/” 同时不包含
“chrome/”,严格判断需要同时含有”mozilla/”,”windows
nt”,”applewebkit/”,”safari/”但是不包含”chrome/”;  
小结:Windows操作系统上的浏览器userAgent均包含”windows
nt”字符串来表征windows操作系统。

function getOs()
{
var OsObject = “”;
if(navigator.userAgent.indexOf(“MSIE”)>0) {
return “MSIE”;
}
if(isFirefox=navigator.userAgent.indexOf(“Firefox”)>0){
return “Firefox”;
}
if(isSafari=navigator.userAgent.indexOf(“Safari”)>0) {
return “Safari”;
}
if(isCamino=navigator.userAgent.indexOf(“Camino”)>0){
return “Camino”;
}
if(isMozilla=navigator.userAgent.indexOf(“Gecko/”)>0){
return “Gecko”;
}
}

复制代码

例1

Windows操作系统浏览器系列:

<script>
// 获取浏览器名称及版本信息
 function appInfo(){
 var browser = {
 msie: false, firefox: false, opera: false, safari: false,
 chrome: false, netscape: false, appname: ‘unknown’, version: 0
 },
 userAgent = window.navigator.userAgent.toLowerCase();
 if ( /(msie|firefox|opera|chrome|netscape)D+(d[d.]*)/.test(
userAgent ) ){
 browser[RegExp.$1] = true;
 browser.appname = RegExp.$1;
 browser.version = RegExp.$2;
 } else if ( /versionD+(d[d.]*).*safari/.test( userAgent ) ){ //
safari
 browser.safari = true;
 browser.appname = ‘safari’;
 browser.version = RegExp.$2;
 }
 return browser;
 }
 // 调用示例
 var myos = appInfo();
 // 如果当前浏览器是IE,弹出浏览器版本,否则弹出当前浏览器名称和版本
 if ( myos.msie ){
 alert( myos.version );
 } else {
 alert( myos.appname + myos.version );
 }
</script>

 代码如下

时候,经常会遇到网页在各个浏览器下不兼容的情况,通常我们处理的方式就是,判断浏览器,然后分别来写不同的JS或者CSS样式,下面就是一些常用的浏览器判断js:

01

IE浏览器系列: