站长承接各类型网站制作,包括:企业网站、个人网站、教育网站等

javascript监听ocx事件(含ocx代码)

前端 chinarui 294℃ 0评论

javascript有事件监听机制,可以监听ocx中的事件。当ocx触发该事件后,javascript可以捕获该事件,并进行相应的处理。

举个简单的例子:

定义接口:

[Guid("F826B24D-E266-4308-8F33-4138E602B57C")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
[ComVisible(true)]
public interface EventInterface{

[DispId(0)]
[AllowReversePInvokeCalls]
void e_PrintEvent(string str);

}

注意Guid不要和调用ocx的Guid重复

定义委托:

public delegate void HandlerPrintEvent(string str);

定义事件:

[Category("events")]
public event HandlerPrintEvent e_PrintEvent;

在类上面声明接口

[Guid("B6D128CB-237D-49EF-8195-0AF826B40A73")]
[ComVisible(true)]
[ComSourceInterfaces(typeof(EventInterface))]

ocx触发事件

if (e_PrintEvent != null)
{
e_PrintEvent(body);
}

注:这里需要注意,一定要判断一下事件是否为空,如果外部监听了此事件,才会进入if里面

javascript监听事件

声明ocx控件:

<object id="ocxMain" classid="clsid:B6D128CB-237D-49EF-8195-0AF826B40A73" codebase="你的ocx" width="200" height="40" ></object>

监听:

<script type="text/javascript" for="ocxMain" event="e_PrintEvent(str)" >
alert(str);
</script>

转载请注明:喜乐从心,不应由人 » javascript监听ocx事件(含ocx代码)

喜欢 (0)

如果您认为这篇文章对您有用,读后觉得收获很大,不妨小额赞助我一下,左微信,右支付宝

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. VeryGood!
    chinarui2017-08-14 14:17 回复