Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IWebBrowser2 не получается получить текст


Signal ©   (2016-03-21 11:39:00) 

Всем привет.
столкнулся с проблемой.
объект IWebBrowser2,
Doc := (WB as IWebBrowser).Document as IHtmlDocument2;
RetText:=Doc.body.innerHTML;
все хорошо, НО если javascript на странице вносит изменения на странице,
при повторном обращении
Doc := (WB as IWebBrowser).Document as IHtmlDocument2;
RetText:=Doc.body.innerHTML;

в RetText не видны эти изменения, но ведь по факту они есть!
как можно прочитать эту страницу с изменениями?


sniknik   (2016-04-11 10:23:00) [1]

а если делать сначала Doc.body.outerHTML; а после Doc.All.Get_length;?
общая функция получения текста может также содержать проверку-действие с аналогом события исполнения скрипта его переформировывающего. а вот делать это в каждой внутренней функции обработки DOM слишком накладно.


Signal   (2016-04-09 00:55:00) [2]

все решил, почему-то не понятно почему,
если делать так

Doc := (WB_ as IWebBrowser).Document as IHtmlDocument2;
далее Doc.All.Get_length;
и получать данные таким образом, то изменений не видно, более через просмотр html кода в самом IE тоже не видно изменений.

но в Doc.body.outerHTML;
есть все изменения сделанные локально JS


Signal   (2016-03-23 22:00:00) [3]

там нет никаго типа событийнойность онпаинт и т.п.
уже все решил
всем спасибо


Signal   (2016-03-21 23:46:00) [4]


> > там эти изменения ЕСТЬ!!!
> слова "событийность", "onpaint"  о чем нибудь говорят? они
> там не есть, они там "стали" потому, что потребовалось отобразить.
>
> основной смысл оптимизации - не делать бессмысленную работу.
>


ну тогда перефразирую вопрос, как получить эти изменения?


sniknik   (2016-03-21 23:12:00) [5]

> там эти изменения ЕСТЬ!!!
слова "событийность", "onpaint"  о чем нибудь говорят? они там не есть, они там "стали" потому, что потребовалось отобразить.
основной смысл оптимизации - не делать бессмысленную работу.


Signal   (2016-03-21 22:46:00) [6]


> тебе о том и говорят.
> браузер как раз не может грузануть кусок дива.
> он может сделать гет или пост, при этом весь текущий dom
> документа умрет и будет рожден новый.


грузануть не может, но отобразить может и отображает, правильно? значит HTML код внутри поменялся

как его получить?
вот в чем вопрос!!


эндсоувот   (2016-03-21 21:08:00) [7]

тебе о том и говорят.
браузер как раз не может грузануть кусок дива.
он может сделать гет или пост, при этом весь текущий dom документа умрет и будет рожден новый.


Signal   (2016-03-21 20:46:00) [8]


> > например загрузить кусок в какой-нибудь DIV через JSon
> если тебе что то нужно, это еще не значит что так все и
> делается... просто проверь тоже самое на отображаемой странице.
>

ДА, если нажать в браузере Просмотр HTML кода там эти изменения ЕСТЬ!!!


> например загрузить кусок в какой-нибудь DIV через JSon
> Так это не браузер и делает, а делает это JS.
>

JS вносит изменения в код страницы


эндсоувот   (2016-03-21 19:38:00) [9]

например загрузить кусок в какой-нибудь DIV через JSon
Так это не браузер и делает, а делает это JS.


sniknik   (2016-03-21 18:48:00) [10]

> например загрузить кусок в какой-нибудь DIV через JSon
если тебе что то нужно, это еще не значит что так все и делается... просто проверьтоже самое на отображаемой странице.


Signal   (2016-03-21 18:32:00) [11]


> а вот смысл браузеру что-то визуальное менять на странице
> если страница не отображается?
> имхо, ради оптимизации работы не будет.


например загрузить кусок в какой-нибудь DIV через JSon


sniknik   (2016-03-21 13:38:00) [12]

а вот смысл браузеру что-то визуальное менять на странице если страница не отображается?
имхо, ради оптимизации работы не будет.


эндсоувот   (2016-03-21 13:17:00) [13]

а что есть кроме innerhtml?

там всё есть.
ты же реально видишь страницу модифицированную скриптом, а не глюки у тебя.

кеш нужен, оттуда гружу картинки
ну вот неизменившаяся после правки станица - она оттуда же.


Signal   (2016-03-21 13:12:00) [14]

>>второе - сбросить кэш
кеш нужен, оттуда гружу картинки

вот тут не понял
>>>первое - получай новое из js.

иннерхтмл там остался такой какой был на момент завершения гета.
а что есть кроме innerhtml?
outerhtml тож самое (ну тож старый код)


эндсоувот   (2016-03-21 12:02:00) [15]

второе - сбросить кэш
первое - получай новое из js.
иннерхтмл там остался такой какой был на момент завершения гета.


Signal   (2016-03-21 11:45:00) [16]

Хотя не только при изменении через javascript
руками обновил страницу, остался старый текс, новый текст не виден!
даже при перезапуске программы


Наверх

Титульная страница Поиск, карта сайта Написать письмо