![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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
руками обновил страницу, остался старый текс, новый текст не виден!
даже при перезапуске программы