使用Javascript检测系统环境,方便系统部署,检测浏览器版本、.NET版本、IE证书安装
<script language="javascript" type="text/javascript"> <!-- var CAPICOM_MEMORY_STORE = 0; var CAPICOM_LOCAL_MACHINE_STORE = 1; var CAPICOM_CURRENT_USER_STORE = 2; var CAPICOM_STORE_OPEN_READ_ONLY = 0; var CAPICOM_STORE_OPEN_READ_WRITE = 1; var CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2; var CAPICOM_STORE_OPEN_EXISTING_ONLY = 128; var CAPICOM_MY_STORE = "MY"; var CAPICOM_ROOT_STORE = "ROOT"; var CAPICOM_TRUSTEDPUBLISHER_STORE = "TrustedPublisher"; var dotNETRuntimeVersion = "3.5.0.0"; var Sys = {}; function CheckBrower() { var ua = navigator.userAgent.toLowerCase(); var s; (s = ua.match(/msie ([d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/firefox/([d.]+)/)) ? Sys.firefox = s[1] : (s = ua.match(/chrome/([d.]+)/)) ? Sys.chrome = s[1] : (s = ua.match(/opera.([d.]+)/)) ? Sys.opera = s[1] : (s = ua.match(/version/([d.]+).*safari/)) ? Sys.safari = s[1] : 0; } // 根据浏览器的userAgent检测版本 function CheckRuntimeVersion(version) { var userAgentString = navigator.userAgent.match(/.NET CLR [0-9.]+/g); if (userAgentString != null) { for (var i = 0; i < userAgentString.length; ++i) { //等于高于都可以 if (Compare(this.GetVersion(version), this.GetVersion(userAgentString[i])) <= 0) return true; } } return false; } // 获取版本 function GetVersion(versionString) { var numericString = versionString.match(/([0-9]+).([0-9]+).([0-9]+)/i); return numericString.slice(1); } // 比较 function Compare(version1, version2) { for (var i = 0; i < version1.length; ++i) { var number1 = new Number(version1[i]); var number2 = new Number(version2[i]); if (number1 < number2) return -1; if (number1 > number2) return 1; } return 0; } function IsCAPICOMInstalled() { if(typeof(oCAPICOM) == "object") { if( (oCAPICOM.object != null) ) { return true; } } } //判断证书安装 function CheckCert(subject,storeName) { var oStore = new ActiveXObject("CAPICOM.Store") oStore.Open(CAPICOM_CURRENT_USER_STORE,storeName,CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); var Certificates = oStore.Certificates for (iCert = 1; iCert <= (Certificates.Count); iCert++) { try { if(Certificates.Item(iCert).SubjectName.indexOf(subject) >= 0){ return true; } } catch (e) { alert("we were unable to display the specified certificate, aborting.."); return false; } } } function $(id) { return document.getElementById(id); } function check() { installed = 1; CheckBrower() if (Sys.ie){ $("browerInfo").innerHTML = "IE" + Sys.ie; }else{ $("browerInfo").innerHTML = "你使用的是非IE浏览器,请使用IE浏览器"; installed = 0; } if (CheckRuntimeVersion(dotNETRuntimeVersion)) { $("netInfo").innerHTML = "<font color=blue>已安装正确的.NET版本</font>"; } else { $("netInfo").innerHTML = "未安装正确的.NET版本(" + dotNETRuntimeVersion + ")<br><a href='tools/net.msi'><font color=red>点击下载</font></a>"; installed = 0; } var certInstall = 1; if (!CheckCert("CN=ZYSOFT_TRUSTHIS_CLIENT",CAPICOM_ROOT_STORE)) { $("certInfo").innerHTML += "受信任的根证书区证书未安装!<br>" certInstall = 0; } if (!CheckCert("CN=ZYSOFT_TRUSTHIS_CLIENT",CAPICOM_TRUSTEDPUBLISHER_STORE)) { $("certInfo").innerHTML += "受信任的发布者区证书未安装!<br>" certInstall = 0 } if(certInstall==1){ $("certInfo").innerHTML = "<font color=blue>已安装</font>"; }else{ $("certInfo").innerHTML += "<a href='tool/cert.exe'><font color=red>点击下载</font></a>"; installed = 0; } if(installed==1){ location.href = "Program.Client.App.xbap"; } } function init() { if (IsCAPICOMInstalled() != true) { //alert("CAPICOM could not be loaded, possibly due to insufficient access privileges on this machine."); } else { check(); } } //--> </script> <noscript><font color=red>提示: 要正常运行本页面, 您的浏览器必须支持 javascript. 请检查您的浏览器设置</font></noscript> </HEAD> <BODY onload="init();"> <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="2" BORDER="0"> <!-- Begin Dialog --> <TR><TD ALIGN="LEFT"> <TABLE CELLPADDING="2" CELLSPACING="0" BORDER="0" WIDTH="740"><TR><TD WIDTH="50%"> <!-- Begin AppInfo --> <TABLE BORDER="0"> <TR><TD COLSPAN="3">?</TD></TR> <TR><TD><B>浏览器版本:</B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD ID="browerInfo"></TD></TR> <TR><TD COLSPAN="3">?</TD></TR> <TR><TD><B>.NET版本:</B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD ID="netInfo"></TD></TR> <TR><TD COLSPAN="3">?</TD></TR> <TR><TD><B>证书安装:</B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD ID="certInfo"></TD></TR> <tr><td colspan="3">?</td></tr> </TABLE> <!-- End AppInfo --> </TD> <td WIDTH="50%"> <TABLE CELLPADDING="2" CELLSPACING="0" BORDER="0" WIDTH="*"> <TR><TD WIDTH="100%"> <p>说明</p> <ul STYLE="list-style-type: decimal"> <li>IE窗口会出现安装的提示,安装ActiveX控件</li> <li>IE窗口会出现安全的提示,选择"Yes"</li> <li>点击下载安装.NET</li> <li>点击下载安装证书</li> </ul> </td></tr> </table> </td> </TR></TABLE> </TABLE> </BODY> </HTML> <OBJECT id="oCAPICOM" codeBase="http://download.microsoft.com/download/E/1/8/E18ED994-8005-4377-A7D7-0A8E13025B94/capicom.cab#version=2,0,0,3" classid="clsid:A996E48C-D3DC-4244-89F7-AFA33EC60679" VIEWASTEXT>