如果没有框架,网页的doc:IHtmlDocumet2很容易获得,但是如果有框架,只能得到主框架的doc,问大虾能否遍历所有的框架中的doc,包括框架中包含的框架
================================================================此题比较难,关注有分!
================================================================此题比较难,关注有分!
int MyApp::DoWorkOnFrames(IHTMLDocument2 *pDoc)
{
int hr;
IHTMLWindow2* pWindow2 = NULL;
IHTMLWindow2* pFrameWindow2 = NULL;
IHTMLDocument2* pFrameDoc = NULL;
IHTMLFramesCollection2* pFrameColl = NULL;
long cFrames; hr = pDoc->get_parentWindow(&pWindow2);
ASSERT(SUCCEEDED(hr) && pWindow2);
pWindow2->get_frames(&pFrameColl);
if (SUCCEEDED(hr = pFrameColl->get_length( &cFrames )))
{
for ( int i=0; i < cFrames ; i++ )
{
VARIANT vIndex;
vIndex.vt = VT_UINT;
vIndex.lVal = i;
VARIANT var2 = { 0 };
LPDISPATCH pDisp;
VARIANT frame;
if (SUCCEEDED(hr = pFrameColl->item( &vIndex, &frame ))){
hr = frame.pdispVal->QueryInterface(IID_IHTMLWindow2, (void**)&pFrameWindow2);
hr = pFrameWindow2->get_document(&pFrameDoc);
DoWorkOnDoc(pFrameDoc);
DoWorkOnFrames(pFrameDoc);
} }
}
}//请大虾看看上面的程序,把它翻译成Delphi