Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
maxteam
2 / 2 / 2
Регистрация: 04.07.2010
Сообщений: 66
1

Получить HTML из TWebBrowser

01.02.2011, 15:22. Просмотров 1631. Ответов 1
Метки нет (Все метки)

Здраствуйте!

У меня на форме есть компонент WebBrowser.
У него я гружу http://bla-bla.com

Дальше мне нада работать с хтмл кодом(заполение полей и т.п.).

в дельфи это можна сделать например так:
Delphi
1
2
3
4
5
...
html_t:variant;
...
html_t := WebBrowser1.OleObject.Dcoment.Forms.Items[0].elements;
...
в с++ билдере нет OleObject

как тоже самое сделать в С++ Builder??

спасибо!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2011, 15:22
Ответы с готовыми решениями:

Получить HTML-код из TWebBrowser
uses ActiveX; function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName):...

Загрузить HTML в TWebbrowser
Метод принимает название Webbrowser'а и строку html затем сохраняет его и считает в Webbrowser ...

TWebBrowser и поля HTML формы.
Как программно, с помощью TWebBrowser заполнить поле <textarea> и в списке (аналог дельфовскому...

Получение html кода страницы из TWebBrowser
Собственно вопрос, как можно получить html код с TWebBrowser, если можно с комментариями, что есть...

Работа с TWebBrowser. Парсинг HTML кода.
что-то у меня не получается :( можете помочь сразу готовый написать. есть несколько ссылок типа: ...

1
LK
Заблокирован
01.02.2011, 17:28 2
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от maxteam Посмотреть сообщение
Дальше мне нада работать с хтмл кодом
- если с кодом - грузите страницу в мемо, и работайте.
Примеры заполнения полей
1.
Вот как заполняется TEXTAREA:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
void __fastcall TForm1::Button5Click(TObject *Sender)
{
IHTMLDocument2 *pHTMLDocument = NULL;
 
if (SUCCEEDED(WB->Document->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&pHTMLDocument)))
{
  if(pHTMLDocument!= NULL )
   {
 
    IHTMLElementCollection *pAll = NULL;
 
  if ( SUCCEEDED ( pHTMLDocument -> get_all ( &pAll ) ) && pAll )
    {
     TVariant vIndex = 0;
     IDispatch *pDisp1 = NULL;
 
  TVariant vName1 = "txtSM"; // ?? ???? ???? <TEXTAREA name=text ....
 
  WideString iniString = "текст смски"; //  TEXTAREA
 
 if ( SUCCEEDED ( pAll -> item ( vName1, vIndex, &pDisp1 ) ) && pDisp1 )
{
 IHTMLTextAreaElement *pInput = NULL;
 
 if ( SUCCEEDED ( pDisp1 -> QueryInterface ( IID_IHTMLTextAreaElement, ( LPVOID* )&pInput ) ) && pInput )
 {
   pInput -> put_value ( iniString );
   pInput -> Release ();
 }
 
 pDisp1 -> Release ();
}
}
pAll -> Release ();
}
}
}
// WB это CppWebBrowser. 
2.
// Заполнение полей ввода и нажатие кнопки на HTML странице 
void __fastcall TForm1::ClickButton(String Name){// нажатие кнопки на форме. Name - имя кнопки в html коде
  TCppWebBrowser *WB=CWB;
  if( WB->Document )    {
    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);
          if( pElement )                    {
            pElement->click();
          }
        }
      }
    }
  }
} //---------------------------------------------------------------------------------
 
void __fastcall TForm1::FillForm(String Name, String Data){// заполнение поля на форме. Name - имя поля в html коде. 
  TCppWebBrowser *WB=CWB;
  CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2>                  pDoc;
  CComQIPtr<IHTMLElementCollection, &IID_IHTMLElementCollection>  pColl;
  CComQIPtr<IDispatch, &IID_IDispatch>                            pTmpDisp;
  CComQIPtr<IHTMLInputElement, &IID_IHTMLInputElement>            pElement;
  CComQIPtr<IDispatch, &IID_IDispatch>                            pDisp;
  if ( SUCCEEDED (WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDoc)))    {
    if ( SUCCEEDED (pDoc->get_all(&pColl)))                 {
      if ( SUCCEEDED (pColl->item(TVariant(WideString(Name)), TVariant(0), &pDisp))) {
        pElement = pDisp;
        pElement->put_value(WideString(Data));
      }
    }
  }
}
// Так же выбирается Radio Button. 
// каждой позиции соответсвует значение - найти его можно в html коде.
3
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2011, 17:28

Вставить свой html код в TWebBrowser.
Подробно компонент не разбирал из-за отсутствия времени и болезни. Код я сам смогу вставить,...

Открыть созраненный файл HTML через TWebBrowser
Здравствуйте! Как в Delphi можно открыть html сохраненную страничку! Ну я думаю что проще через...

Как из TWebBrowser получить ХТМЛ-код страницы.
Как получить HTML-код с текущей страницы в компоненте TWrbBrowser. Заранее спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru