activexobject不兼容-如何在Javascript中判断客户端是否安装插件或OCX是否注册,并且能兼容不同的浏览器

问题描述

如何在Javascript中判断客户端是否安装插件或OCX是否注册,并且能兼容不同的浏览器

我想实现的功能是:用户访问网站时,判断客户端机器上是否有安装指定程序或某个OCX是否注册,如果没有则自动弹出下载包提示安装(下载包安装时会自动安装几个插件和程序,并注册一些OCX),那么只要判断其中某个程序有没有安装或某个OCX有没有注册就行了。
我是试了几种方法都不行:
1.判断注册后的OCX文件是否存在:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var et = fso.FileExists('C:WindowsSysWOW64myocx.ocx');
if (et)

alert('SysWOW64: myocx存在');
else

alert('SysWOW64: myocx不存在');
用这个方法在IE中是可以实现,但会有安全警告弹出,而且ActiveXObject在360浏览器中不支持,说无法创建对象。

2.读取注册表中某个项是否存在,存在表示我的下载包有安装过(下载包安装时可以写一些注册表项):
var obj = new ActiveXObject("WScript.Shell");
//接来下读取注册表项(略)
我发现上面这一句代码也是在IE下可以执行,在其他浏览器下会出错。
所以请教各位大侠,有什么方法可以实现上述功能,但又不受安全级别限制,还可以兼容不同的浏览器。不限于JavaScript,用其他方法也可以,只要是在客户端能实现这个功能就行。

补充:我们平时用的银行网站,第一次访问时会提示下载安装插件,安装完后下载再访问就不会再提示了,而且换成360等其他浏览器,它也知道本机已经装了插件,不会再提示了。我就想实现这样的功能。谢谢了!!!
问题解决立即送分!

时间: 2024-09-19 20:33:49

activexobject不兼容-如何在Javascript中判断客户端是否安装插件或OCX是否注册,并且能兼容不同的浏览器的相关文章

节点内容-如何在javascript中获得节点对应的内容

问题描述 如何在javascript中获得节点对应的内容 <script type="text/javascript"> function city() { var arr=[["选择城市"],["海淀","东城","朝阳区"],["武汉","新洲","黄冈"], ["广州","珠海","

如何在PHP中判断一个网页请求是ajax请求还是普通请求

如何在PHP中判断一个网页请求是ajax请求还是普通请求?你可以通过传递参数的方法来 实现,例如使用如下网址请求:  /path/to/pkphp.com/script.php?ajax 在PHP脚本中使用如下方法判断: if(isset($_GET['ajax'])) { -这是一个ajax请求,然后- } else { -这不是一个ajax请求,然后- } 通过传递_GET参数的方法简单实现了网页请求的判断.但是如果需要这样的功能,这个 方法可能就有弊端,功能需求如下: 1.通过ajax请求

javascript-nvelocity中的#if()如何在JavaScript中使用?

问题描述 nvelocity中的#if()如何在JavaScript中使用? nvelocity中的if跟JavaScript中的if关键字冲突了,怎么想办法可以用nvelocity中的#if <script type=""text/javascript""> function GetTestType() { var s = document.getElementById(""testType""); $selec

android开发-如何在if中判断ImageButton所使用的背景

问题描述 如何在if中判断ImageButton所使用的背景 if ( ) { pause(); button.setBackgroundResource(R.drawable.pause_bg); } else { resume(); button.setBackgroundResource(R.drawable.start_bg); } 解决方案 boolean pauseFlag = false; if ( !pauseFlag) { pause(); pauseFlag = true;

前端-Javascript中判断NaN,isNaN函数是否已经足够

问题描述 Javascript中判断NaN,isNaN函数是否已经足够 // Is the given value `NaN`? _.isNaN = function(obj) { return _.isNumber(obj) && isNaN(obj); }; 这个函数,为啥要先判断是否为Number,有这个必要吗 如果不判断,存在例外情况吗 解决方案 http://ourjs.com/detail/5383eb8f7610019548000012http://www.jb51.net/

JavaScript中判断整数的多种方法总结_javascript技巧

之前记录过JavaScript中判断为数字类型的多种方式,这篇看看如何判断为整数类型(Integer). JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示,和Java的double类型一样.但实际操作中比如数组索引.位操作则是基于32位整数. 方式一.使用取余运算符判断 任何整数都会被1整除,即余数是0.利用这个规则来判断是否是整数. 复制代码 代码如下: function isInteger(obj) {     return obj%1 === 0 } isIn

详解JavaScript中的客户端消息框架设计原理

  这篇文章主要介绍了详解JavaScript中的客户端消息框架设计原理,包括客户端和服务器端的通信等方面的内容,需要的朋友可以参考下 哇--是个危险的题目,对吗?我们对于什么是本质的理解当然会随着我们对要解决问题的理解而变化.因此我不会说谎--一年前我所理解的本质很不幸并不完整,因为我确信我将要写的已经快伴随我有6个月之久.所以,这篇文章是我在发现JavaScript中成功的运用客户端消息模式的一些关键要点时的一个掠影. 1.) 理解中介者与观察者的区别 大多数人在描述任何事件/消息机制的时候

JavaScript中判断两个字符串是否相等的方法_基础知识

先将用户的输入值全部转换为大写(或小写),然后再行比较: var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. }       JavaScript有两种相等运算符.一种是完全向后兼容的,标准的"==",如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转换,考虑下面的赋值语句: var strA =

JavaScript中判断原生函数检查function是否是原生代码_javascript技巧

我总是经常碰到需要检查某个function是否是原生代码的情况 -- 这是功能测试中一个很重要的内容: 函数是浏览器内置支持的,还是通过第三方类库模拟的.要检测这一点,最简单的办法当然是判断函数的 toString 方法返回的值啦. JavaScript代码 判断函数是否是原生方法其实相当简单: // 判断是否原生函数 function isNative(fn) { // 示例: // alert.toString() // "function alert() { [native code] }