自己做了一个OCX控件,该控件同时使用了一些第三方提供的动态库,然后将这些OCX、动态库,MFC动态库打包成了cab文件,并放在服务端的webapp/ROOT/download目录下,然后在ROOT目录下创建了一个index.html,其内容如下:
<HTML> 
  <HEAD> 
  <TITLE>登陆页</TITLE> 
  <SCRIPT LANGUAGE="JavaScript"> 
   function listDevice() 
   { 
    var devicenamelist = LoginOCX.GetDeviceList() ;
    var device_array = devicenamelist.split(":") ;
    for( var i=0;i<device_array.length;i++)
    {
        devices.add(document.createElement("OPTION")) ;
        devices.options[i].value = device_array[i] ;
        devices.options[i].text = LoginOCX.GetUsername(device_array[i]); 
    }
   } 
   </SCRIPT>   
  </HEAD> 
  <BODY> 
  <OBJECT ID="LoginOCX" CLASSID="CLSID:BA36B879-D479-4A02-A699-B6DF965E2F04" CODEBASE="http://192.168.1.105/download/login.cab#version=1,0,0,1" width=0 height=0> 
  </OBJECT>  
  <select id="devices" style="width:120"> </select>
  <SCRIPT LANGUAGE="JavaScript"> 
  <!--
        listDevice() ;
  //-->
  </SCRIPT>
  </BODY> 
  </HTML> 
  
   然后在终端使用IE访问http://192.168.1.105:8080,提示脚本错误,不支持该方法,但是,将这个cab文件解压到本地目录,并且将index.html拷贝到同一目录并打开该网页,一切正常,不知道原因何在?(这里运行终端和OCX编译终端是同一个,因此OCX在运行时已经注册过了)   版本和操作系统说明:
   服务端:
        apache-tomcat-6.0.10
       Suse Linux 10.0
   IE客户端:
        WindowsXP
   OCX编译环境:
        windowsXP + VC6.0