TCppWebBrowser 不完美执行JavaScript
按妖哥的做法:
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
WebBrowser1->Navigate(L"http://www.ccrun.com");
Sleep(2000);
CrnRunJavaScript();
}
bool __fastcall TForm1::CrnRunJavaScript(void)
{
IHTMLWindow2 *pWin;
VARIANT vRet;
bool bRet = false;
while (WebBrowser1->Busy) {
Application->ProcessMessages();
}
IHTMLDocument2 *pDoc;
if(FAILED(WebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, ( LPVOID* )&pDoc))) {
return bRet;
}
try {
pDoc->get_parentWindow(&pWin);
if(pWin != NULL)
{
try {
pWin->execScript(L"alert('hostName:'+window.location.hostName);\r\nalert('window.cookie:'+window.cookie);", L"JScript", &vRet);
bRet = true;
}
__finally
{
pWin = NULL;
}
}
}
__finally
{
pDoc = NULL;
}
return bRet;
}
脚本可执行,但hostName、cookie都为空,脚本前面加上“window.location.hostName = "www.ccrun.com";”,结果也一样,请高人指点解决。 JavaScript? TCppWebBrowser?
[解决办法]
你这段代码运行不完美, 我一点都不惊讶. 因为你javascript中的对象用的不对.
pWin->execScript(L"alert('hostname:' + window.location.hostname + ' cookie:' + document.cookie);", L"JScript", &vRet);