CWebBrowser 怎么运行JavaScript

华亭真人 2009-03-16 04:05:20
比如我知道一个按钮
想直接用javascript:onSubtopForm('24','1')
怎么操作呢

VARIANT vInfo;
vInfo.vt=VT_EMPTY;
m_e.Navigate("http://www.baidu.com",&vInfo,&vInfo,&vInfo,&vInfo);
m_e.SetVisible(true);

IHTMLDocument2 *ph=(IHTMLDocument2 *)m_e.GetDocument();

ph->QueryInterface(IID_IHTMLDocument2,(void**)&ph);


下面写什么。
...全文
188 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
华亭真人 2009-03-17
  • 打赏
  • 举报
回复

LPDISPATCH glpDisp = NULL;
void CBamk2Dlg::OnDocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT FAR* URL)
{
if (glpDisp && glpDisp == pDisp)
{
i++;
if(b&&i==2)
{

b=false;
MessageBox("asdas");
VARIANT ret;
pw->execScript(CComBSTR("frames[0][1][1].formsubmitcpo('2','中国联通','中国联通','信息通讯费')"),CComBSTR("javascript"),&ret);

}


glpDisp = NULL;
}


}

void CBamk2Dlg::OnNavigateComplete2Explorer1(LPDISPATCH pDisp, VARIANT FAR* URL)
{

if (!glpDisp)
glpDisp = pDisp;

}


接着自己来。。。。下面的问题是我要往一个输入框里输入数字,如何操作呢
华亭真人 2009-03-16
  • 打赏
  • 举报
回复
现在这个网页是用frame加载的.我用CWebBrowser2::GetBusy() 并不能判断出它是否已下载完毕.
华亭真人 2009-03-16
  • 打赏
  • 举报
回复
.....兄台之前,吾很是不解,能否给出一些代码呢
yjgx007 2009-03-16
  • 打赏
  • 举报
回复
设置连接点与WebBrowser2, DIID_DWebBrowserEvents2, 在Invoke中判断事件,DISPID_NAVIGATECOMPLETE2的时候, 记下当前参数的pDisp接口指针m_pWBDisp,在DISPID_DOCUMENTCOMPLETE事件时,判断m_pWBDisp是否与当前的pDisp相同,如果相同,表示网页下载完成, 这个判断的目的是过滤掉有些网页可能存在iframe加载 的情况.
华亭真人 2009-03-16
  • 打赏
  • 举报
回复
没人回答....自己来吧

IHTMLWindow2 *pw;
ph->get_parentWindow(&pw);
VARIANT ret;
pw->execScript(CComBSTR("frames[0][0].onSubtopForm('24','1')"),CComBSTR("javascript"),&ret);
pw->execScript(CComBSTR("frames[0][1][1].formsubmitcpo('2','中国联通','中国联通','信息通讯费')"),CComBSTR("javascript"),&ret);


现在的问题是...如何判断网页下载完了,或者是CWebBrowser2不忙了...我要运行下一个命令,

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧