JS系统环境检测,检测浏览器版本、.NET版本、IE证书安装

使用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>

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部