发新话题
打印

如何调用ActiveX网页中的JavaScript函数

如何调用ActiveX网页中的JavaScript函数

前言
  很多网友问到,在HTML的页面中放置一个COM对象,这个对象该如何调用页面中的脚本函数的问题,本人近日也因为工作需要实现这样的功能,在网上搜索后,获得了很多帮助,但并没有发现完整的实现。本文描述了实现过程中的几个要点,同时提供一个示例工程的下载。
  1——
  给接口添加一个方法:
  方法名:SetClientSite
  参数:IOleClientSite* pClientSite
  2——
  给上面的方法加以实现(在相应的类中实现,已经自动生成了框架):
  STDMETHODIMP CIrDav::SetClientSite(IOleClientSite * pClientSite)
  {
   // TODO: 在此添加实现代码
   HRESULT hr = S_OK;
   IServiceProvider *isp, *isp2 = NULL;
   if (!pClientSite)
   {
    COMRELEASE(m_spBrowser);
   }  
   else
   {
    try
    {

TOP

hr = pClientSite->QueryInterface(IID_IServiceProvider, reinterpret_cast<void **>  (

TOP

通过这步的操作,我们就获得了控件所在Web页面的BROWSER对象指针和相应的DOCUMENT对象指针。

  通过这些BROWSER和DOCUMENT对象指针,我们可以设置窗口的很多属性,比如菜单、全屏、工具栏等的显示和DOCUMENT的背景颜色等等。
这个方法参见MSDN:http://support.microsoft.com/support/kb/articles/Q257/7/17.ASP
  3——
  获得脚本,通过m_spDoc(DOCUMENT对象)的方法get_Script可以获得页面中的脚本对象:
  CComPtr<IDispatch> pScript;
  hr=this->m_spDoc->get_Script(

TOP

dispparams.cNamedArgs = 0;
  EXCEPINFO excepInfo;
  memset(

TOP

发新话题