最近项目接触到ActiveX。使用ActiveX嵌入到浏览器中,一方使用socket和手机端进行,一方使用https和服务器进行交互,这边文章 介绍最基本的ActiveX的创建和使用。
我使用的是MFC ActiveX ,第一步创建MFC ActiveX工程:
我选择 的是无界面AxtiveX,你可以根据需要进行创建。
第二步创建对外的接口,供Js调用。
打开类视图 ,点击XXXLib,你会看到如下图所示的。右击添加方法,选着下一步直接完成。
在添加的方法里头 添加下列语句:
AfxMessageBox(_T("JS调用成功!"));
第三步:编写HTML网页,调用ActiveX。
<HTML>
<HEAD>
<TITLE> 测试ActiveX </TITLE>
<SCRIPT LANGUAGE="JavaScript">
function PassParameter()
{
MyActiveX1.Test();
}
function callfun(i)
{
alert("callback function in js, ret=" + i);
}
</SCRIPT>
</HEAD>
<BODY>
<center>
测试ActiveX
<p></p>
<OBJECT ID="MyActiveX1" WIDTH=100 HEIGHT=51
CLASSID="CLSID:74340399-7DE7-4B66-93F7-BF581A0BD21B">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
<p><INPUT TYPE="button" NAME="Submit" VALUE="提交"
onclick="PassParameter()"/></p>
</SCRIPT>
</center>
</BODY>在代码中,要插入ActiveX的classID。可以用Microsoft ActiveX Control Pad导出。
第四步:编译ActiveX,如果编译成功可以得到一个MyActiveX.ocx文件,这个文件就相当于dll文件。用命令:regsvr32 D:\My Documents\Visual Studio 2010\Projects\MyActiveX\Release\MyActiveX.ocx进行注册。
反注册:regsvr32 /u D:\My Documents\Visual Studio 2010\Projects\MyActiveX\Release\MyActiveX.ocx。你也可以写一个bat文件,这样比较方便。
打开网页,点击提交,你会发现弹框JS调用成功。说明Js调用ActiveX成功。
----------------------------------------------------------
问题:1、在ActiveX调用Js函数呢?
2、你会发现这样使用ActiveX会出现脚本不安全。这在下一篇会说到 。
本文介绍了如何在JavaScript中调用ActiveX控件进行通信。首先通过MFC创建无界面ActiveX控件,定义对外接口。然后在HTML页面中插入ActiveX并调用其方法。成功注册并运行后,JS调用ActiveX显示为'JS调用成功'。然而,这种使用方式可能存在脚本安全问题,将在后续文章中探讨。

1957

被折叠的 条评论
为什么被折叠?



