首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

100分怎么获取webbrowser的<head>标签内容

2012-02-15 
100分如何获取webbrowser的head标签内容在c++ builder 2009中问题一:获取TWebBrowser网页源码,好像只能

100分如何获取webbrowser的<head>标签内容
在c++ builder 2009中

问题一:获取TWebBrowser网页源码,好像只能获取到<body>标签的内容,但如何获取<head>标签中的<Scripts>内容呢??

问题二:webbrowser中的__fastcall Navigate2(OleVariant URL, OleVariant Flags, OleVariant TargetFrameName, OleVariant PostData) 如何使用?务必给出例子。


[解决办法]
第一个问题,将WebBrowser中的全部源码显示在Memo1中:

C/C++ code
while (wb->Busy)    Application->ProcessMessages();const int nBufferSize = 0x300000;HGLOBAL hGlobal = GlobalAlloc(GPTR, nBufferSize);if (hGlobal){    IStream *pStream;    if (SUCCEEDED(::CreateStreamOnHGlobal(hGlobal, true, &pStream)))    {        IPersistStreamInit *psi;        if (SUCCEEDED(wb->Document->QueryInterface(                IID_IPersistStreamInit, (void **)&psi)))        {            if (SUCCEEDED(psi->Save(pStream, false)))            {                AnsiString str = AnsiString((char *)hGlobal);                // 如果网页是UTF8编码需要转换一下                Memo1->Lines->Add(Utf8ToAnsi(str));                // 否则直接显示在Memo中                // Memo1->Lines->Add(str);            }            psi->Release();        }        pStream->Release();    }    else        ::GlobalFree(hGlobal);}
[解决办法]
第二个问题,大概是这样:
C/C++ code
char *str = "action=Loging&Username=用户名&Password=密码";SAFEARRAYBOUND sabound[48];sabound[0].cElements = strlen(str);sabound[0].lLbound = 0;SAFEARRAY *psa = SafeArrayCreate(VT_UI1, 1, sabound);for (unsigned int n = 0; n < strlen(str); n++){    SafeArrayPutElement(psa, (long *)0, (void *)str[n]);}OleVariant vEmpty = NULL;OleVariant vPostData = psa;OleVariant vUrl = "http://www.ccrun.com/index.asp";WebBrowser->Navigate2(vUrl, vEmpty, vEmpty, vPostData, vEmpty);SafeArrayDestroy(psa);
[解决办法]
学习了
[解决办法]
妖哥说的很清楚了~~~
学习
[解决办法]
学习下了。
[解决办法]
老妖针对第一个问题的办法我测试了一下,有些问题 会重复加载html文件。

热点排行