TCppWebBrowser 不完美执行JavaScript

hexx 2013-05-29 12:48:51
按妖哥的做法:
__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";”,结果也一样,请高人指点解决。
...全文
484 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenyongjie 2013-07-07
  • 打赏
  • 举报
回复
搬个凳子坐下学习
haiandj 2013-05-30
  • 打赏
  • 举报
回复
引用 1 楼 ccrun 的回复:
你这段代码运行不完美, 我一点都不惊讶. 因为你javascript中的对象用的不对.
pWin->execScript(L"alert('hostname:' + window.location.hostname + ' cookie:' + document.cookie);", L"JScript", &vRet);
妖哥,通过Variant tag= Variant(WebBrowser1->Document).OlePropertyGet("outerhtml");可以获得一段html代码,但是怎样编辑这段代码呢,好像这个属性是只读的,想把某个div或span查找出来标红,很困难,求教
hexx 2013-05-29
  • 打赏
  • 举报
回复
先赋值就可以显示了,现在的问题是:用pWin->execScript怎样获得javascript的返回值? 类似Variant r = script.OleFunction("myfunc");
hexx 2013-05-29
  • 打赏
  • 举报
回复
妖哥,对象应该怎样用啊? 我其实是在自做wap浏览器,读取jsp文件在TCppWebBrowser上显示出来,其中的图片、js文件都下载到本地来显示、执行,另试过以下方法: Variant script = Variant(WebBrowser1->Document).OlePropertyGet("Script"); Variant r = script.OleFunction("myfunc"); 这个连window.localStorage、window.sessionStorage都不支持。
ccrun.com 2013-05-29
  • 打赏
  • 举报
回复
你这段代码运行不完美, 我一点都不惊讶. 因为你javascript中的对象用的不对.
pWin->execScript(L"alert('hostname:' + window.location.hostname + ' cookie:' + document.cookie);", L"JScript", &vRet);

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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