IID_IHTMLDocument2, модель DOM и странности с <script>
От: Rom1kz  
Дата: 05.09.07 15:37
Оценка:
Использую IWebBrowser в своем проекте.
На некотороых страницах необходимо найти нужные формы, заполнить данными...
Так вот, создал простой html документ:

<html>
<body>
<form>
</form>
</body>
</html>


Элемент формы был успешно найден... но вот на следующем документе поиск возвращает 0 элементов:

<html>
<script>
</script>
<body>
<form>
</form>
</body>
</html>


Как такое быть может ?
вот часть исходника:

IHTMLDocument2 *iDOM;
iDisp->QueryInterface(IID_IHTMLDocument2,(void**)&iDOM);

IHTMLElementCollection* pColl = NULL;

if (SUCCEEDED(iDOM->get_forms(&pColl)))
{
    long cElems;
    if (SUCCEEDED(pColl->get_length( &cElems )))
    {
        for ( int i=0; i<cElems; i++ )
        {
            VARIANT vIndex;
            vIndex.vt = VT_UINT;
            vIndex.lVal = 0;
            VARIANT var2 = { 0 };
            LPDISPATCH pDisp;
            if (SUCCEEDED(pColl->item( vIndex, var2, &pDisp )))
            {
                IHTMLElement* pElem = NULL;
                if (SUCCEEDED(pDisp->QueryInterface( IID_IHTMLElement, (LPVOID*)&pElem )))
                {
                    BSTR bstr;
                    
                    pElem->get_tagName(&bstr);
                    if (bstr)
                    {
                        SysFreeString(bstr);
                    }
                    IHTMLFormElement* pForm = NULL;
                    if (SUCCEEDED(pDisp->QueryInterface( IID_IHTMLFormElement, (LPVOID*)&pForm )))
                    {
                        //...
                    }
                }
            }
        }
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.