功能为打开网页禁止ESC退出键的使用,所以开发了一个ActiveX.ocx插件,网页调用。原来想采用网页自动下载CAB文件方式,但是这种方式的缺点是未认证的ActiveX插件证书是禁止的,必须手动在IE里边设置允许下载未认证证书才可以,所以就换了另一种方法,把ActiveX.ocx插件单独做成steup.exe可安装注册的安装包文件,用户点击下载自己安装ActiveX.ocx插件,然后网页需要判断是否已经安装了ActiveX.ocx插件,安装则可以继续,没安装,提示下载安装后继续。目前ActiveX.ocx插件打包注册安装都没问题了,网页调用ActiveX.ocx插件按ESC键也不管用了,唯一的问题时不管我安装了ActiveX.ocx插件和未安装ActiveX.ocx插件,网页都无法获取到插件对象,导致我无法判断到底是装了还是没装,希望高手指点一下,绝对给高分。网页代码如下:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<SCRIPT type="text/javascript">
function IsActiveX()
{
//方法一判断,直接报异常错误NewObj = new ActiveXObject,所以获取不到对象alert(NewObj)弹出=undefined
var NewObj;
try
{
NewObj = new ActiveXObject("ALTTABACTIVEX.AltTabActiveXCtrl.1");
alert(NewObj);
var xx=typeof(NewObj);
alert(xx);
if (typeof(NewObj) != 'undefined') {
NewObj = null;
alert("存在111");
//return true;
}
} catch (e) {
alert(NewObj);
NewObj = null;
alert("不存在222");
// return false;
} //方法二也无法获取到SinloActiveX对象,alert(u.object)为NULL
if(window.ActiveXObject)
{
try
{
var u = document.getElementById("SinloActiveX");
alert(u.object);
}
catch(e)
{
alert(e.description);
}
}
}
</SCRIPT>
<OBJECT ID="SinloActiveX" WIDTH=0 HEIGHT=0
CLASSID="CLSID:28466CD5-2136-4BBF-8CC9-879C5EC3E8EC">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT><p></p> <p></p><br><INPUT TYPE="submit" value=" 提交下一步 " onclick="IsActiveX();return false;">
</BODY>
</HTML>个人思路:以上的CLSID和名称都是正确的,安装ActiveX插件后,ESC退出键确实不管用了,但是判断ActiveX插件是否存在时还是提示不存在,难道手动安装的ActiveX插件不能这样判断,还有其它方法?ActiveX插件
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<SCRIPT type="text/javascript">
function IsActiveX()
{
//方法一判断,直接报异常错误NewObj = new ActiveXObject,所以获取不到对象alert(NewObj)弹出=undefined
var NewObj;
try
{
NewObj = new ActiveXObject("ALTTABACTIVEX.AltTabActiveXCtrl.1");
alert(NewObj);
var xx=typeof(NewObj);
alert(xx);
if (typeof(NewObj) != 'undefined') {
NewObj = null;
alert("存在111");
//return true;
}
} catch (e) {
alert(NewObj);
NewObj = null;
alert("不存在222");
// return false;
} //方法二也无法获取到SinloActiveX对象,alert(u.object)为NULL
if(window.ActiveXObject)
{
try
{
var u = document.getElementById("SinloActiveX");
alert(u.object);
}
catch(e)
{
alert(e.description);
}
}
}
</SCRIPT>
<OBJECT ID="SinloActiveX" WIDTH=0 HEIGHT=0
CLASSID="CLSID:28466CD5-2136-4BBF-8CC9-879C5EC3E8EC">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT><p></p> <p></p><br><INPUT TYPE="submit" value=" 提交下一步 " onclick="IsActiveX();return false;">
</BODY>
</HTML>个人思路:以上的CLSID和名称都是正确的,安装ActiveX插件后,ESC退出键确实不管用了,但是判断ActiveX插件是否存在时还是提示不存在,难道手动安装的ActiveX插件不能这样判断,还有其它方法?ActiveX插件
你都说网页能调用了,但怎么又说无法获取插件的对象了,那你原来的网页是怎么调用的,调用组件的方式就是你上面写的了,只要ProgID,CLSID没错就可以了