怎样在用代码调用CWebBrower加载的页面的一个函数。比如
.htm如下:
<html>
<head><title>test</title></head>
<script language=javascript>
function msg(str)
{
   alert(str);
}</script>
............
我要在vc中调用htm中的msg函数,并且要传一个参数str进去。

解决方案 »

  1.   

    有两种方法可以解决你的问题,的一种,我试过,可以用,首先构造你的代码模板
    例如:
    <html>
    <head><title>test</title></head>
    <script language=javascript>
    function msg($str)
    {
       alert($str);
    }</script>这个模板存在一个CString 中,替换 $str 成你想要的东西,str.Replace("$str",param);然后用IHTMLDocument2 pDoc->Write(&safeArray);的方法将这个模板写入HTML文档,你的JAVASCRIPT会被自动以你指定的参数执行。第二种方法,我没有试过,你可以试一试,IHTMLWindow2::execScript 有这个方法,你试试吧!反正都离不开 IHTMLDocument2 IHTMLWindow2 这些IE COM 接口。关于 pDoc->Write() MSDN中有C++的例子,这里不再赘述了.
      

  2.   

    楼上的,再问一下,我在资源里插入了一个HTML文件,
    ID为IDR_HTML1我怎么在CWebBrowser里面把这个文件显示出来。
      

  3.   


    CHttpFile* pF=(CHttpFile*)sess.OpenURL(m_szURL);//打开文件
    CString szData,szAllData;
    while(pF->ReadString(szData))
    {//读取文件
    szAllData+="\r\n";
    szAllData+=szData;
    }
    pF->Close();
    m_szHTML=szAllData;
      

  4.   

    CHtmlView实际上是在CFormView上放上一个CWebBrowerse2……