Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.001 c
1-1356366310
Михаил
2012-12-24 20:25
2018.04.01
Сохранение документа AutoCAD


2-1458549557
Signal
2016-03-21 11:39
2018.04.01
IWebBrowser2 не получается получить текст


15-1471706996
Fox
2016-08-20 18:29
2018.04.01
Интернет-радио


6-1285639970
ForumReader
2010-09-28 06:12
2018.04.01
Запустить несколько TWebBrowser, чтобы куки не путались...


2-1459961908
Погроммист
2016-04-06 19:58
2018.04.01
Как определить MAC адрес НУЖНОГО адаптера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский