网页js判断是否有安装c/s应用程序

一,由于公司为了安全性,要求把登录页移到c/s界面去登录,由c/s负责硬件验证,并打开主页。但是公司里面又有加盟商,这些用户不用经过硬件验证可以直接进入主页。

由上问题引申出,要去判断该客户端是否有安装该c/s程序,window.location.href打开程序,没有的话,直接进入主页

 

1,当你用window.location.href去打开注册的应用程序时,如果有的话,他会去打开,没有的话,try/catch也捕获不到异常,而停止执行。

2,所以查看了淘宝中阿里旺旺的实现,当本机有安装阿里旺旺时,会打开阿里旺旺的应用程序,没有的话,就会去打开网页版阿里旺旺。可查看webww-min.js

 

_checkWangWangInstalled : function() {
			var J = false, H = k.unparam(o.get(h)), L = (navigator.platform
					.indexOf("Mac") > -1) ? true : false;
			if (!L) {
				if (H.c == 1) {
					J = true;
					G = 1
				}
				if (!J && t.ie) {
					J = this._checkWangWangVersion()
				} else {
					if (t.firefox || t.chrome) {
						var I = navigator.mimeTypes["application/ww-plugin"];
						if (I) {
							var K = F.createElement("embed");
							K.setAttribute("type", "application/ww-plugin");
							k.DOM.css(K, "visibility", "hidden");
							k.DOM.css(K, "width", 0);
							k.DOM.css(K, "height", 0);
							KISSY.ready(function(M) {
										F.body.appendChild(K);
										numberify = function(N) {
											var O = 0;
											return parseFloat(N.replace(/\./g,
													function() {
														return (O++ === 0)
																? "."
																: ""
													}))
										};
										if (numberify(K.NPWWVersion()) >= 1.003) {
											J = true
										} else {
											J = false
										}
										if (K.tagName.toLowerCase() == "embed") {
											K.parentNode.removeChild(K)
										}
										H.c = 0;
										o.set(h, M.param(H), 365, b, "/")
									})
						}
					}
				}
			} else {
				if (t.firefox || t.chrome || t.opera || t.safari) {
					var I = navigator.mimeTypes["application/ww-plugin"];
					if (I) {
						var K = F.createElement("embed");
						K.setAttribute("type", "application/ww-plugin");
						k.DOM.css(K, "visibility", "hidden");
						k.DOM.css(K, "width", 0);
						k.DOM.css(K, "height", 0);
						F.body.appendChild(K);
						if (K.isMacWWInstalled()) {
							J = true
						}
						K.parentNode.removeChild(K);
						H.c = 0;
						o.set(h, k.param(H), 365, b, "/")
					}
				}
			}
			if (J) {
				H.c = 1;
				o.set(h, k.param(H), 365, b, "/")
			}
			if (location.href.indexOf("topen") > -1) {
				J = false
			}
			return J
		},
		_checkWangWangVersion : function() {
			var J, I = true, H = k.unparam(o.get(h));
			try {
				J = new ActiveXObject("aliimx.wangwangx")
			} catch (K) {
				try {
					J = new ActiveXObject("WangWangX.WangWangObj");
					w = 5
				} catch (K) {
					if (t.ie) {
						H.c = 0;
						I = false;
						G = 0;
						o.set(h, k.param(H), 365, b, "/")
					}
				}
			} finally {
				J = null
			}
			return I
		},

 由上可以看出,他是对ie(Activex)与firefox/chrome(在plugins下放入一个插件,可用navigate读到)分别开发了插件,然后进行判断,故依照了他进行了两个插件的开发判断。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值