首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

asp.net中js调用activex的方法提醒“该对象不支持此属性或方法”

2013-11-26 
asp.net中js调用activex的方法提示“该对象不支持此属性或方法”我在ActiveX中定义了一个方法:关闭串口publi

asp.net中js调用activex的方法提示“该对象不支持此属性或方法”
我在ActiveX中定义了一个方法:关闭串口
public void closeser()
{
     comm.close();
}

在加入该ActiveX控件的页面上编写js调用该方法
<object id="ActiveX" classid="clsid:0A080A10-5F36-4781-A592-74FDCCB1F30B" codebase="ActiveX.cab">    </object>
    <script language="javascript" type="text/javascript">
            function CallActiveXFunction(){
                     var activeObj=document.getElementById("ActiveX");
                     if(activeObj){
                                    document.getElementById("ActiveX").closeser();
                                  }
                    }
     </script>


 <input type="button" onClick="javascript:CallActiveXFunction();" value="关闭串口" id="Button1" runat="server"></input>

但我点击“关闭串口”按钮后,提示网页有错误,查看后是这条语句document.getElementById("ActiveX").closeser();有问题。
问题是“该对象不支持此属性或方法”。
请路过的高手指点一下该如何解决。
[解决办法]
检查下,你嵌入的是不是包含 closeser 的那个对象
[解决办法]
1.检查你的ActiveX是不是为COM互操作注册
2.你的ActiveX是不是受信任的,可以在程序集中加入
   using System.Security;
   [assembly: AllowPartiallyTrustedCallers()]
[解决办法]
你可以先在早期的开发平台上验证你的这个COM组件,例如在excel的vba编程平台里,从菜单上选择“引用”,然后引用你的COM组件,然后在一个代码模块中写

sub asdfaf
   dim x as new 你的控件的命名空间.你的控件的类名
   x.closeser()
end sub


通常,在你写 x. 这个句点的时候,你就可以看到你的控件有没有暴露相应的方法给 COM 了。

如果没有暴露,那么你开发COM的声明方法有错误。例如 ClassInterfaceAttribute 标签声明不对,或者缺少一个必要的 interface 定义COM组件的接口,或者接口方法上缺少 DispIdAttribute 标签定义,等等。

热点排行