AnsiString Name="mydiv";
String Data="Ints eyse";
TComInterface<IHTMLDocument2> pDocument;
WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDocument);
if( pDocument )
{
TComInterface<IHTMLElementCollection> pCollection;
pDocument->get_all(&pCollection);
if( pCollection )
{
TComInterface<IDispatch> pDisp;
pCollection->item(TVariant(WideString(Name)), TVariant(0), &pDisp);
if( pDisp )
{
TComInterface<IHTMLElement> pElement;
pDisp->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement);
pDisp->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement2);
if( pElement )
pElement->put_innerText(Data.w_str() );
}
}
}
CppWebBrowser
Можно ли получить доступ к объекту DIV TCppWebBrowser (DOM) используя не Name IHtmlElement а ID html-объекта.
Компилятор: C++Builder 2009
Заранее спасибо, Hellsing_Alucard
Используя Name умеете? Приведите пример кода.
Код:
Вот я что-то написал примерное. Код изменяет содержимое DIV, но работает, если DIV содержит элементы (
Пустой DIV теоретически может и не создаться (хотя я в этом мало разбираюсь).
Цитата:
[BCC32 Error] Main.cpp(82): E2316 'getElementById' is not a member of 'IHTMLElement3'
А как получить к нему доступ ?
Показывайте код, вызывающий ошибку, целиком.
Цитата:
AnsiString Name="mydiv";
String Data="Ints eyse";
TComInterface<IHTMLDocument2> pDocument;
WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDocument);
if( pDocument )
{
TComInterface<IHTMLElementCollection> pCollection;
pDocument->get_all(&pCollection);
if( pCollection )
{
TComInterface<IDispatch> pDisp;
pCollection->item(TVariant(WideString(Name)), TVariant(0), &pDisp);
if( pDisp )
{
TComInterface<IHTMLElement> pElement;
TComInterface<IHTMLElement3> pMyDoc;
HRESULT hr = pDisp->QueryInterface(IID_IHTMLDocument3, (LPVOID*)&pMyDoc);
if (SUCCEEDED(hr))
{
hr = pMyDoc->getElementById(CComBSTR(szId), pElem);
}
}
}
Какой еще IHTMLElement3? Будьте предельно внимательны.
:D :D совсем я плохой... спасибо )
Цитата:
Memo1->Clear();
String Id="userlinks";
TComInterface<IHTMLDocument2> pDocument;
WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDocument);
if( pDocument )
{
TComInterface<IHTMLElementCollection> pCollection;
pDocument->get_all(&pCollection);
if( pCollection )
{
TComInterface<IHTMLElement> pElement;
TComInterface<IHTMLDocument3>pMyDoc;
HRESULT hr = WB->Document->QueryInterface( IID_IHTMLDocument3, (LPVOID*)&pMyDoc);
if (SUCCEEDED(hr))
{
hr = pMyDoc->getElementById(Id.w_str(),&pElement);
ShowMessage(hr);
}
}
}
String Id="userlinks";
TComInterface<IHTMLDocument2> pDocument;
WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDocument);
if( pDocument )
{
TComInterface<IHTMLElementCollection> pCollection;
pDocument->get_all(&pCollection);
if( pCollection )
{
TComInterface<IHTMLElement> pElement;
TComInterface<IHTMLDocument3>pMyDoc;
HRESULT hr = WB->Document->QueryInterface( IID_IHTMLDocument3, (LPVOID*)&pMyDoc);
if (SUCCEEDED(hr))
{
hr = pMyDoc->getElementById(Id.w_str(),&pElement);
ShowMessage(hr);
}
}
}
Итоговый рабочий вариант