代码改变世界

网页中ActiveX控件与JavaScript交互 js调用ActiveX函数

2009-12-15 23:04  Kevin-wang  阅读(1321)  评论(0编辑  收藏  举报
JavaScript调用ActiveX控件中的函数
这个交互的关键是在接口类中添加对外的方法。大概步骤如下:
1. 在.NET在新建一个MFC ActiveX工程
2. 在类视图中,可以看到最下面有一个“工程名+Lib”项,图标与上面的类图标不同,展开它,可以看到三项,下面要做的就是在第二项(名为“_D+工程名”)下添加对外函数
3. 展开第二项后可以看到下面已经有了一个AboutBox(void)函数,这就是说些ActiveX控件已经有了一个对外交互的接口。对着接口(名为“_D+工程名”)点右键选“添加->添加方法”,写入函数名和参数,返回类型(内部名称可以和外面名称不一样)。
4. 添加完成后,可以在类视图中的“C+工程名+Ctrl”类下面看到刚刚添加的函数(这里显示的是上面提到的内部名称),双击该函数就可以写自己的代码了。

上面的步骤就添加ActiveX控件对外的一个函数,在网页中可以在JavaScript函数中去调用该函数,调用方法就是运行“控件ID.函数名 (参数)”,这里的控件ID指在网页中为ActiveX指定的ID,如<object id=”控件ID” classid=…></object>。函数名是指在上面第3步中的外部名称。

如下图所示:定义了三个方法Login,MessageBox,Test2

值得注意的是,如果想把JavaScript字符串当作参数传递到控件里,那么MFC的参数应该为BSTR类型