Форум: "Начинающим";
Текущий архив: 2018.04.01;
Скачать: [xml.tar.bz2];
ВнизIWebBrowser2 не получается получить текст Найти похожие ветки
← →
Signal (2016-03-21 11:39) [0]Всем привет.
столкнулся с проблемой.
объект 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 не видны эти изменения, но ведь по факту они есть!
как можно прочитать эту страницу с изменениями?
← →
Signal (2016-03-21 11:45) [1]Хотя не только при изменении через javascript
руками обновил страницу, остался старый текс, новый текст не виден!
даже при перезапуске программы
← →
эндсоувот © (2016-03-21 12:02) [2]второе - сбросить кэш
первое - получай новое из js.
иннерхтмл там остался такой какой был на момент завершения гета.
← →
Signal (2016-03-21 13:12) [3]>>второе - сбросить кэш
кеш нужен, оттуда гружу картинки
вот тут не понял
>>>первое - получай новое из js.
иннерхтмл там остался такой какой был на момент завершения гета.
а что есть кроме innerhtml?
outerhtml тож самое (ну тож старый код)
← →
эндсоувот © (2016-03-21 13:17) [4]а что есть кроме innerhtml?
там всё есть.
ты же реально видишь страницу модифицированную скриптом, а не глюки у тебя.
кеш нужен, оттуда гружу картинки
ну вот неизменившаяся после правки станица - она оттуда же.
← →
sniknik © (2016-03-21 13:38) [5]а вот смысл браузеру что-то визуальное менять на странице если страница не отображается?
имхо, ради оптимизации работы не будет.
← →
Signal (2016-03-21 18:32) [6]
> а вот смысл браузеру что-то визуальное менять на странице
> если страница не отображается?
> имхо, ради оптимизации работы не будет.
например загрузить кусок в какой-нибудь DIV через JSon
← →
sniknik © (2016-03-21 18:48) [7]> например загрузить кусок в какой-нибудь DIV через JSon
если тебе что то нужно, это еще не значит что так все и делается... просто проверь тоже самое на отображаемой странице.
← →
эндсоувот © (2016-03-21 19:38) [8]например загрузить кусок в какой-нибудь DIV через JSon
Так это не браузер и делает, а делает это JS.
← →
Signal (2016-03-21 20:46) [9]
> > например загрузить кусок в какой-нибудь DIV через JSon
> если тебе что то нужно, это еще не значит что так все и
> делается... просто проверь тоже самое на отображаемой странице.
>
ДА, если нажать в браузере Просмотр HTML кода там эти изменения ЕСТЬ!!!
> например загрузить кусок в какой-нибудь DIV через JSon
> Так это не браузер и делает, а делает это JS.
>
JS вносит изменения в код страницы
← →
эндсоувот © (2016-03-21 21:08) [10]тебе о том и говорят.
браузер как раз не может грузануть кусок дива.
он может сделать гет или пост, при этом весь текущий dom документа умрет и будет рожден новый.
← →
Signal (2016-03-21 22:46) [11]
> тебе о том и говорят.
> браузер как раз не может грузануть кусок дива.
> он может сделать гет или пост, при этом весь текущий dom
> документа умрет и будет рожден новый.
грузануть не может, но отобразить может и отображает, правильно? значит HTML код внутри поменялся
как его получить?
вот в чем вопрос!!
← →
sniknik © (2016-03-21 23:12) [12]> там эти изменения ЕСТЬ!!!
слова "событийность", "onpaint" о чем нибудь говорят? они там не есть, они там "стали" потому, что потребовалось отобразить.
основной смысл оптимизации - не делать бессмысленную работу.
← →
Signal (2016-03-21 23:46) [13]
> > там эти изменения ЕСТЬ!!!
> слова "событийность", "onpaint" о чем нибудь говорят? они
> там не есть, они там "стали" потому, что потребовалось отобразить.
>
> основной смысл оптимизации - не делать бессмысленную работу.
>
ну тогда перефразирую вопрос, как получить эти изменения?
← →
Signal (2016-03-23 22:00) [14]там нет никаго типа событийнойность онпаинт и т.п.
уже все решил
всем спасибо
← →
Signal (2016-04-09 00:55) [15]все решил, почему-то не понятно почему,
если делать так
Doc := (WB_ as IWebBrowser).Document as IHtmlDocument2;
далее Doc.All.Get_length;
и получать данные таким образом, то изменений не видно, более через просмотр html кода в самом IE тоже не видно изменений.
но в Doc.body.outerHTML;
есть все изменения сделанные локально JS
← →
sniknik © (2016-04-11 10:23) [16]а если делать сначала Doc.body.outerHTML; а после Doc.All.Get_length;?
общая функция получения текста может также содержать проверку-действие с аналогом события исполнения скрипта его переформировывающего. а вот делать это в каждой внутренней функции обработки DOM слишком накладно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.04.01;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c