执行js务必在网页加载完成时执行,示例代码片段如下:
void CMyWebBrowserEvenrHandler::NavigateComplete2(CWebBrowserUI* pWeb, IDispatch* pDisp, VARIANT*& url)
{
// 页面加载完毕才能执行js
// execute js start
IDispatch *pHtmlDocDisp = pWeb->GetHtmlWindow();
IHTMLDocument2 *pHtmlDoc2 = NULL;
HRESULT hr = pHtmlDocDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pHtmlDoc2);
pHtmlDocDisp->Release();
if (SUCCEEDED(hr) && pHtmlDoc2 != NULL)
{
CComQIPtr<IHTMLWindow2> pHTMLWnd;
pHtmlDoc2->get_parentWindow(&pHTMLWnd);
if (SUCCEEDED(hr) && pHTMLWnd != NULL)
{
//CComBSTR bstrjs = SysAllocString(_T("document.documentElement.style.overflow = 'hidden'"));//去除水平方向滚动条
CComBSTR bstrjs = SysAllocString(_T("document.documentElement.style.overflowY = 'hidden'"));//去除竖直方向滚动条
CComBSTR bstrlan = SysAllocString(_T("javascript"));
VARIANT varRet;
pHTMLWnd->execScript(bstrjs, bstrlan, &varRet);
}
}
// execute js end
}