javascript调用ActiveX函数的方法 @ 4/4/2007

技术类
Q:
页面上的javascript如何调用ActiveX中的函数?

A:
ActiveX需要公布方法给javascript调用。

在ClassWizard中Automation页,添加Method。

手动添加Method:
ODL文件中添加
//{{AFX_ODL_METHOD(CTestCtrl)
[id(3)] void ShowDialog();
//}}AFX_ODL_METHOD

CTestCtrl.h中添加:
//{{AFX_DISPATCH(CTestCtrl)
afx_msg void OnShowDialog();
//}}AFX_DISPATCH

//{{AFX_DISP_ID(CTestCtrl)
dispidShowDialog = 3L,
//}}AFX_DISP_ID

CTestCtrl.cpp中添加:
//{{AFX_DISPATCH_MAP(CTestCtrl)
DISP_FUNCTION(CTestCtrl, "ShowDialog", OnShowDialog, VT_EMPTY, VTS_NONE)
//}}AFX_DISPATCH_MAP

然后实现OnShowDialog:
void CTestCtrl::OnShowDialog() {
    // ... blahblah
}

最后,在javascript中调用:
<script type="text/javascript">
function ShowDialog(){
    if(window.ActiveXObject){
        try{
            document.getElementById("objTest").ShowDialog();
        }catch(e){}
    }
}
</script>
<OBJECT WIDTH="300" HEIGHT="300" CLASSID="clsid:12342234-3234-4234-5234-623472348234" ID="objTest"></OBJECT>
发布于 4/4/2007 12:52:28 | 评论:0

看帖要回帖...

categories
archives
links
statistics
  • 网志数:1170
  • 评论数:2013