`
wu_quanyin
  • 浏览: 208224 次
  • 性别: Icon_minigender_1
  • 来自: 福建省
社区版块
存档分类
最新评论

网页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读到)分别开发了插件,然后进行判断,故依照了他进行了两个插件的开发判断。

 

 

 

 

 

分享到:
评论
1 楼 walkingp 2012-04-28  
请问你的插件dll是怎么开发的呢?有参考资料吗?

相关推荐

    超声波避障C语言程序

    根据给定的文件信息,本篇文章将围绕“超声波避障C语言程序”这一主题进行深入探讨。本文旨在解析这段代码所实现的功能,并详细解释其中涉及的关键技术点。 ### 一、概述 该程序主要应用于单片机智能小车的超声波...

    “HTML5 CSS3网页制作”课程实验系统设计与实现.pdf

    Node.js是一个用于构建服务器端应用程序的JavaScript。Express是一个轻量级的Web框架,用于快速构建Web应用程序。MySQL是一种关系型数据库管理系统,用于存储学生信息、实验资源、实验结果等数据。 第四节:结论 ...

    单片机9999S定时继电器程序

    根据提供的文件信息,以下是对“单片机9999S定时继电器程序”知识点的详细介绍: 首先,该文档介绍了如何编写一个基于单片机的定时继电器程序。单片机是一种集成电路芯片,它包含了微处理器的核心部分,能够实现...

    在线考试系统大集合!!

    C/S架构,即Client/Server(客户端/服务器)模式,需要在客户端安装专门的应用程序才能使用。虽然部署和维护较为复杂,但C/S架构的系统通常有更好的性能和用户体验。对于功能复杂、对安全性要求较高的在线考试系统...

    Winform测试WebBrowser控件对应的IE版本

    与B/S(浏览器/服务器)架构的网页应用不同,C/S应用中的WebBrowser控件可以直接利用本地系统资源,无需通过网络加载网页,这使得它在某些情况下比直接打开浏览器更加高效。 要了解WebBrowser控件所使用的IE版本,...

    c语言程序设计报告-图书管理系统.pdf

    - 程序中包含了C语言的基本结构,例如`int main()`是程序的入口函数,这是每个C程序必不可少的部分。 - `#include`指令用于包含标准输入输出库`<stdio.h>`、Windows API库`<windows.h>`、字符串处理库`<string.h>`...

    JavaScript

    根据题目描述,该文档主要面向的是**B/S架构**的开发者,即基于浏览器/服务器模式的应用程序开发人员。 #### 二、JavaScript基础知识 1. **基本语法**:JavaScript具有类似于C语言的语法结构,支持变量声明、数据...

    leetcode和oj-oj-to-file:从在线判断url创建代码文件的节点应用程序

    一个节点应用程序,用于从在线判断 url 创建代码文件。 支持在线评委 安装 ojToFile 需要工作。 将项目克隆到您的系统并运行以下命令以安装所有依赖项。 npm install 用法 node ojToFile.js -u " ...

    JavaScript基于正则表达式的数字判断函数

    JavaScript是一种广泛用于网页和网络应用的脚本语言,它在客户端运行,为用户提供动态交互体验。在JavaScript中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于执行模式匹配和字符串操作。本文将...

    【C++课堂课件】程序语言原理第一部分.pptx

    程序设计应用领域包括控制核能发电厂、提供移动电话中的电子游戏等。由于计算机应用领域的千差万别,人们开发了用于不同目的的程序设计语言。 科学应用领域 第一种科学应用语言是Fortran。ALGOL 60及其后代语言,...

    javaScript练习题.docx

    JavaScript 是一种广泛应用于 web 开发的编程语言,它可以在客户端执行,以增强网页的交互性和用户体验。以下是 JavaScript 练习题的汇总,涵盖了选择题、不定项选择题、填空、判断、阅读程序写结果、程序题和设计题...

    JSP页面中模糊查询

    然而,在浏览器/服务器(Browser/Server, B/S)结构的Web应用程序中,实现模糊查询面临着更大的挑战。由于HTTP协议本身是无状态的,这意味着只有在重新提交或刷新整个页面时,才能向Web服务器发送请求来查询数据库中的...

    webpack实现vue-loader插件

    Webpack 是一个流行的模块打包工具,它能够将 JavaScript 应用程序的多种资源(如 JS、CSS、图片等)转换和打包成浏览器可识别的格式。Vue.js 是一款轻量级的前端框架,Vue Loader 是 Webpack 用于处理 Vue.js 单...

    JavaScript Programmer's Reference - Alexei White

    这部分内容对于编写复杂应用程序至关重要。 #### 第十章:面向对象开发 JavaScript虽然是一种基于原型的语言,但它也支持面向对象编程模式。本章将指导读者如何利用构造函数、类和继承等机制构建模块化且易于维护的...

    JavaScript判断是否是微信浏览器

    微信浏览器作为移动端常用的应用程序,有时开发者需要识别用户是否正在使用微信内置的浏览器来访问网页。本文将详细解释如何使用JavaScript来判断当前用户是否在微信内置浏览器中浏览网页。 首先,我们要了解的是...

    javaWEB项目答辩.doc

    C/S结构:Client/Server(客户端/服务器),桌面安装应用程序(QQ、斗地主、MSN)。 2.HTTP常见状态码? 200成功、401客户端没有访问权限、404路径错误、500服务器产生内部错误。 3.传值方式GET/POST? GET:...

    PB11[1].5_WEB客户端编程技巧

    在PowerBuilder 11.5中,将传统的C/S应用程序转换为WEB应用程序时,大多数代码得以保留并能在新的BS架构下运行。然而,这种转换使得原本运行在客户端的代码变成了IIS服务器上的服务代码,客户端变成了浏览器。在PB...

    VB教程文章

    在传统的三层C/S计算模式中,Web应用程序将用户界面、业务逻辑和数据存储分离开来,用户通过Web浏览器发送请求,服务器端处理请求并返回结果。 **Web程序的发展** 1. **HTML语言阶段**:Web的早期,主要使用HTML...

Global site tag (gtag.js) - Google Analytics