`

javascript判断当前的浏览器和操作系统的版本

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>useragent.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">   
	
  </head>
  <script type="text/javascript">
  		//获是userAgent信息,里面表示浏览器的相关信息
  		//navigator.appVersion获得版本号的信息
  		var sUserAgent = navigator.userAgent;
		
		
		//为MinMoz准备的,比较版本号,因为它的版本号有与从不同
		
		function compareVersions(sVersion1, sVersion2) {
		
		    var aVersion1 = sVersion1.split(".");
		    var aVersion2 = sVersion2.split(".");
		    
		    if (aVersion1.length > aVersion2.length) {
		        for (var i=0; i < aVersion1.length - aVersion2.length; i++) {
		        	//差的位数就放入0
		            aVersion2.push("0");
		        }
		    } else if (aVersion1.length < aVersion2.length) {
		        for (var i=0; i < aVersion2.length - aVersion1.length; i++) {
		            aVersion1.push("0");
		        }    
		    }
		    
		    for (var i=0; i < aVersion1.length; i++) {
		 		//比如版本号的大小
		 		
		        if (aVersion1[i] < aVersion2[i]) {
		            return -1;
		        } else if (aVersion1[i] > aVersion2[i]) {
		            return 1;
		        }    
		    }		    
		    return 0;		
		}
		
		//查看是不是IE的浏览器,同时要满足以下两个要求,但没有考虑到Opera
		
  		var isIE = sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1; 
  		          
		//下面就判断是那个版本的IE,还没有加入IE7和IE8我这没有,不知道版本号....那位能帮我加一下	           
		var isMinIE4 = isMinIE5 = isMinIE5_5 = isMinIE6 = false;
		
		if (isIE) {
		    var reIE = new RegExp("MSIE (\\d+\\.\\d+);");//用正则表示式去获得版本号
		    reIE.test(sUserAgent);
		    var fIEVersion = parseFloat(RegExp["$1"]);
		
		    isMinIE4 = fIEVersion >= 4;		//true or false
		    isMinIE5 = fIEVersion >= 5;
		    isMinIE5_5 = fIEVersion >= 5.5;
		    isMinIE6 = fIEVersion >= 6.0;
		}
		
		//查看是不是MinMoz的浏览器
		
  		var isMoz = sUserAgent.indexOf("Gecko") > -1;
		//下面就判断是那个版本的FF
		
		var isMinMoz1 = sMinMoz1_4 = isMinMoz1_5 = false;

		if (isMoz) {
		    var reMoz = new RegExp("rv:(\\d+\\.\\d+(?:\\.\\d+)?)");
		    reMoz.test(sUserAgent);
		    isMinMoz1 = compareVersions(RegExp["$1"], "1.0") >= 0;
		    isMinMoz1_4 = compareVersions(RegExp["$1"], "1.4") >= 0;
		    isMinMoz1_5 = compareVersions(RegExp["$1"], "1.5") >= 0;
		}
  		//查看操作系统
  		var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
		var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") 
            || (navigator.platform == "Macintosh");

		var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
		//先全部设为false
		var isWin95 = isWin98 = isWinNT4 = isWin2K = isWinME = isWinXP = false;
		var isMac68K = isMacPPC = false;
		var isSunOS = isMinSunOS4 = isMinSunOS5 = isMinSunOS5_5 = false;
		
		if (isWin) {
		    isWin95 = sUserAgent.indexOf("Win95") > -1 
		              || sUserAgent.indexOf("Windows 95") > -1;
		    isWin98 = sUserAgent.indexOf("Win98") > -1 
		              || sUserAgent.indexOf("Windows 98") > -1;
		    isWinME = sUserAgent.indexOf("Win 9x 4.90") > -1 
		              || sUserAgent.indexOf("Windows ME") > -1;
		    isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 
		              || sUserAgent.indexOf("Windows 2000") > -1;
		    isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 
		              || sUserAgent.indexOf("Windows XP") > -1;
		    isWinNT4 = sUserAgent.indexOf("WinNT") > -1 
		              || sUserAgent.indexOf("Windows NT") > -1 
		              || sUserAgent.indexOf("WinNT4.0") > -1 
		              || sUserAgent.indexOf("Windows NT 4.0") > -1 
		              && (!isWinME && !isWin2K && !isWinXP);
		} 
		//没玩过苹果机....
		if (isMac) {
		    isMac68K = sUserAgent.indexOf("Mac_68000") > -1 
		               || sUserAgent.indexOf("68K") > -1;
		    isMacPPC = sUserAgent.indexOf("Mac_PowerPC") > -1 
		               || sUserAgent.indexOf("PPC") > -1;  
		}

		if (isUnix) {
		    isSunOS = sUserAgent.indexOf("SunOS") > -1;
		
		    if (isSunOS) {
		        var reSunOS = new RegExp("SunOS (\\d+\\.\\d+(?:\\.\\d+)?)");
		        reSunOS.test(sUserAgent);
		        isMinSunOS4 = compareVersions(RegExp["$1"], "4.0") >= 0;
		        isMinSunOS5 = compareVersions(RegExp["$1"], "5.0") >= 0;
		        isMinSunOS5_5 = compareVersions(RegExp["$1"], "5.5") >= 0;
		    }
		}
  		
  		window.onload = function(){
  			//这是我的环境
		  	if(isMinIE6){
				 alert("当前浏览器是IE"); 	
			}
			if(isWinXP){
				 alert("当前系统是Windows XP"); 	
			}			
  		}
  	
  </script>
  <body>
   
  </body>
</html>
分享到:
评论

相关推荐

    JavaScript完全自学宝典

    操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:UltraEdit12.10a、eclipse-jee-europa Web浏览器:Microsoft Internet Explorer 6.0及以上版本 Web服务器:Tomcat 5.5.20及以上...

    ua-parser-js:UAParser.js-JavaScript库,用于从userAgent字符串检测浏览器,引擎,操作系统,CPU和设备类型模型。 支持浏览器和node.js环境

    该库的目的是完全从用户代理字符串中识别出网络浏览器,布局引擎,操作系统,cpu体系结构和设备类型/模型的详细类型,并且占用空间较小(压缩后为〜17KB,压缩后为〜6KB)。 用香草JavaScript编写,这意味着它不...

    程序天下:JavaScript实例自学手册

    第20章 调用操作系统的应用 20.1 Javascript操作剪贴板 20.2 打开硬盘驱动器 20.3 单击加入收藏夹 20.4 复制标题和网址 20.5 关闭输入法 20.6 检测屏幕分辨率 20.7 检测系统信息 20.8 显示本地计算机信息 20.9 检测...

    《程序天下:JavaScript实例自学手册》光盘源码

    第20章 调用操作系统的应用 20.1 Javascript操作剪贴板 20.2 打开硬盘驱动器 20.3 单击加入收藏夹 20.4 复制标题和网址 20.5 关闭输入法 20.6 检测屏幕分辨率 20.7 检测系统信息 20.8 显示本地计算机信息 20.9 检测...

    JavaScript实例精通

    操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:、Dreamwave、Notepad、UltraEdit,或者其他文本编辑器 Web服务器:IIS 5.1及以上版本 2.本书所附光盘范例 第1章(\1) 示例描述:...

    JavaScript完全自学宝典 源代码

    操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:UltraEdit12.10a、eclipse-jee-europa Web浏览器:Microsoft Internet Explorer 6.0及以上版本 Web服务器:Tomcat 5.5.20及以上...

    JavaScript笔记

    JavaScript:定义行为和动作 (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是...

    JavaScript网页特效范例宝典源码

    实例018 下降式浏览器 32 实例019 旋转的窗口 33 实例020 移动的窗口 34 实例021 震动的窗口 35 实例022 弹出广告窗口 36 1.4 窗口控制 37 实例023 窗口始终在最上面 38 实例024 窗口的最小化、最大化 39 实例025 ...

    精通JavaScript

    IE 5或更高版本 Mozilla Firefox 1.5.0.3或更高版本 服务器采用IIS5.1 或以上版本 数据库使用MS Access 2000以上 2.本书所附光盘实例代码: 第1章(\第1章) 查看1.2.htm中noscript显示效果的方法如下: 1.将...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Android 一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导开发 IOS 由苹果公司开发的移动操作系统 Webkit 一个开源的浏览器引擎,在手机上的...

    php网络开发完全手册

    第6章 文件系统与文本数据操作 91 6.1 PHP中目录操作详解 91 6.1.1 打开目录 91 6.1.2 关闭目录 91 6.1.3 读取目录中的文件 92 6.1.4 创建目录 92 6.1.5 删除目录 93 6.2 PHP中文件操作详解 93 6.2.1 打开文件 93 ...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:Microsoft Visual Studio 2005 数据库:SQL Server 2005 Web服务器:IIS 5.1及以上版本 2.本书17~27章所附代码的运行环境 ...

    dreamweaver的各种组件

    redirect 可以根据浏览器操作系统等多种条件调入相应页面 Centrewindow 自动将窗口置中 One by one(behavior+command) 在显示当前层的时候,自动隐藏前一个层 maxmizewindow 最大化窗口 Open full screen window ...

    java开源包4

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    大名鼎鼎SWFUpload- Flash+JS 上传

     SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的...

    asoft签到管理系统tykq3.5_build20110125

    8、系统浏览器兼容性调整完毕,现在您可以在IE、firefox和遨游、腾讯TT等浏览器上正常使用本程序了 [2009-5-10] v3.1 beta1 1、部分功能ajax化 2、验证机制cookies化 3、界面UI更换 [2009-1-7] v 3.0 PACK3 ...

    JAVA上百实例源码以及开源项目

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

Global site tag (gtag.js) - Google Analytics