我自定义了一个控件(用来取得机器上的硬件信息进行登录控制),如果在浏览器安全设置里面开启"对没有标记为安全的ActiveX的进行初始化和脚本运行",则可以正常进行.如果没有开启的话,就会直接返回true,不执行后面的语句,从而直接跳过验证.达不到目的.我想请问下,为什么会跳过下面这句var obj = new ActiveXObject("HJKJ.GetDisk"); 而直接返回true.或者怎么判断浏览器的安全设置.?
代码大概如下:
<script>
function check(){
 var str="";
 var c=0;
 alert(c);
 var obj = new ActiveXObject("HJKJ.GetDisk"); 
 var a=obj.xbdisk();
  ..............
 //判断是真返回true,为假返回false
}
</script>
下面是提交那里的设置.onsubmit后面的第一项.
<form action="CheckLogin" METHOD="POST" name="myform" onsubmit="return check();if(!checkit(strRet)){return false}else{document.all.loginit12.disabled=true;if(isIE6()==false) event.returnValue=false;<%=TindexPageInterface.getInstance().getOnSubmitScript()%>};">
请高手帮帮忙. 

解决方案 »

  1.   

    我像楼主一样,在浏览器安全设置里面开启"对没有标记为安全的ActiveX的进行初始化和脚本运行",也无法执行 new ActiveXObject()
      

  2.   

    控件代码中,必须实现相关接口以将 ActiveX 标记为“可安全执行脚本的ActiveX控件”(不同语言写法有差异,具体写法去网上搜索)。控件编译好后,要进行数字签名,签名证书或根证书必须包含在浏览器信任证书列表中(或加入到信任证书列表中)。