用C#写了个activex控件,里面有这么个方法
 public string Read()
        {
            return "sss";
        }如何在js中调用该方法,并将返回值赋给文本框控件
    <object id="TLP1"  codebase="setup.exe"  classid="clsid:46E2B1CE-6031-4D7E-B52C-390316CEA933">
</object>用
<script language="javascript">
function read()
{
  var s=TLP1.Read();
  document.getElementById('textbox1').value=s;
}
</script><input type="button" onclick"read()" valuee="Click" />
文本框不能获取值

解决方案 »

  1.   

    [ComImport,Guid("00000118-0000-0000-C000-000000000046"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] 
       public interface IOleClientSite 
       { 
           void SaveObject(); 
           void GetMoniker(uint dwAssign, uint dwWhichMoniker, object ppmk); 
           void GetContainer(out IOleContainer ppContainer); 
           void ShowObject(); 
           void OnShowWindow(bool fShow); 
           void RequestNewObjectLayout(); 
       }    [ComImport,Guid("0000011B-0000-0000-C000-000000000046"),  InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] 
       public interface IOleContainer 
       { 
           void EnumObjects([In, MarshalAs(UnmanagedType.U4)] int grfFlags, 
           [Out, MarshalAs(UnmanagedType.LPArray)] object[] ppenum); 
           void ParseDisplayName([In, MarshalAs(UnmanagedType.Interface)] object pbc, 
           [In, MarshalAs(UnmanagedType.BStr)] string pszDisplayName, 
           [Out, MarshalAs(UnmanagedType.LPArray)] int[] pchEaten, 
           [Out, MarshalAs(UnmanagedType.LPArray)] object[] ppmkOut); 
           void LockContainer([In, MarshalAs(UnmanagedType.I4)] int fLock); 
       } 
    private void CallJavaScript(string Filenames) 
           {            Type typeIOleObject = this.GetType().GetInterface("IOleObject", true); 
               object oleClientSite = typeIOleObject.InvokeMember("GetClientSite", 
               BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, 
               null, 
               this, 
               null);            IOleClientSite oleClientSite2 = oleClientSite as IOleClientSite; 
               IOleContainer pObj; 
               oleClientSite2.GetContainer(out pObj);            //参数数组 
             
               //获取页面的Script集合 
               IHTMLDocument pDoc2 = (IHTMLDocument)pObj; 
             Object  script = pDoc2.Script; 
               object[] args = new object[1]; 
               args[0] = Filenames;            try 
               { 
                   //调用JavaScript方法OnScaned并传递参数,因为此方法可能并没有在页面中实现,所以要进行异常处理 
                   script.GetType().InvokeMember("OnScaned", 
                   BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, 
                   null, 
                   script, 
                   args); 
               } 
               catch(Exception err) { 
               
               } 
           } 
      

  2.   

    document.getElementById('TLP1').Read();