Форум: "Сети";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
ВнизИзменение HTML кода, перед его загрузкой в TWebBrowser Найти похожие ветки
← →
DelphiN! © (2006-08-09 13:55) [0]Необходимо в самописном браузере заменить некоторе слова в HTML коде, загружаемом с WEB сервера, ну а далее уже измененный HTML отобразить в TWebBrowser-e
← →
Сергей М. © (2006-08-09 14:32) [1]Вообще-то это обязанности прокси, а не клиента ..
← →
DelphiN! © (2006-08-09 14:36) [2]> [1] Сергей М. © (09.08.06 14:32)
Ну а мне нужно со стороны клиента ...
← →
Сергей М. © (2006-08-09 14:48) [3]Что мешает встроить прокси в клиента ?
← →
DiamondShark © (2006-08-09 16:16) [4]Прокси и сети здесь совершенно ни при чём.
TWebBrowser -- оболочка для Microsoft Web Browser Control (компонент Internet Explorer).
Предоставляет собственные механизмы расширения и программирования.
http://msdn.microsoft.com/workshop/browser/prog_browser_node_entry.asp
Большей частью позволяющие вообще абстрагироваться от сетей, проксей, и вообще от источника контента.
В частности, поставленная задача (подмены контента "на лету") решается регистрацией Pluggable MIME Filter
http://msdn.microsoft.com/workshop/networking/pluggable/pluggable.asp
Есть пример реализации фильтра для преобразования контента.
http://download.microsoft.com/download/ie55/sample05/1.1/WIN98Me/EN-US//MIMEfilt.exe
На Ц++, правда ;) но разобраться можно, тем более, что по коду можно понять некоторые вещи, не очень внятно описанные в документации.
В примере показан постоянный MIME Filter, но ничто не мешает регистрировать временные фильтры для своего приложения через IInternetSession. Реализация фильтра та же самая.
← →
programania © (2006-08-09 22:36) [5]http://programania.com/namespace.zip 91кб
пример как перехватывать все http запросы webbrowser в Delphi5
и отдавать свое
← →
SergP © (2006-08-10 14:55) [6]> [0] DelphiN! © (09.08.06 13:55)
> Необходимо в самописном браузере заменить некоторе слова
> в HTML коде, загружаемом с WEB сервера, ну а далее уже измененный
> HTML отобразить в TWebBrowser-e
Так браузер таки самописный или все-таки TWebBrowser?
← →
DiamondShark © (2006-08-11 11:24) [7]
> programania © (09.08.06 22:36) [5]
> http://programania.com/namespace.zip 91кб
> пример как перехватывать все http запросы webbrowser в Delphi5
> и отдавать свое
Неадекват.
Зачем http перехватывать?
А если загружаеться с file:// или (*крестиццо*) с ms-help:// ?
А вот MIME-фильтры как раз индифферентны к источнику контента, они с абстракным потоком работают.
← →
programania © (2006-08-12 22:38) [8]>DiamondShark © (11.08.06 11:24) [7]
>Зачем http перехватывать?
Приведите ссылку где загрузка HTML кода не по http
интересно попробовать
>DelphiN! © (09.08.06 13:55)
>Изменение HTML кода, перед его загрузкой в TWebBrowser
Возможно проще обрабатывать WebBrowser1BeforeNavigate2
ставить cancel:=true; загружать URL самостоятельно
изменять что нужно и записывать в WebBrowser
Вот только WebBrowser вызывает BeforeNavigate2
не для всего что загружает.
← →
Ketmar © (2006-08-12 22:51) [9]> [8] programania © (12.08.06 22:38)
res://что-то
file://что-то
ms-help://что-то
my-super-custom-protocol://что-то
хватит, или ещё сочинять?
← →
programania © (2006-08-13 03:17) [10]>Ketmar © (12.08.06 22:51) [9]
не надо сочинять
нужен реальный адрес чтобы попробовать
укажите вместо "что-то" нормальный адрес HTML кода в интернете
← →
Ketmar © (2006-08-13 04:21) [11]> [10] programania © (13.08.06 03:17)
а при чём тут "интернет"? в [8] ни о какой "интернете" речи не шло.
← →
DiamondShark © (2006-08-13 13:21) [12]
> programania ©
Интернет тут совсем ни при чём. Речь идёт о WebBrowser, а ему абсолютно фиолетово, откуда именно загружается контент, потому что архитектура компонентная.
Странно, что вы приводите пример pluggable-protocol, но так, похоже, и не поняли, в чём там соль.
Пользоваться надо адекватными средствами. Для задачи "заменить некоторе слова в HTML коде" существует механизм подключаемых фильтров.
Зачем городить костыли, если есть возможность работать на уровне абстрактного потока?
← →
programania © (2006-08-13 22:32) [13]>Ketmar © (13.08.06 04:21) [11]
>а при чём тут "интернет"? в [8] ни о какой "интернете" речи не шло.
Интернет просто как наиболее простой пример и чтоб убедится что там такого нет
однако может все же скажите любой полный адрес?
>DiamondShark © (13.08.06 13:21) [12]
>Странно, что вы приводите пример pluggable-protocol
В этом примере показано как перехватывать чтение файлов по протоколу http,
а если в нем добавить строку например такую:
InternetSession.RegisterNameSpace(Factory, Class_OurNSHandler, "ftp", 0, nil, 0);
то будет перехват еще и ftp, аналогично и других какие надо
Что еще нужно? Что тут странного?
>Зачем городить костыли, если есть возможность работать на уровне абстрактного потока?
Зачем городить кучу умных слов?
Приведите наконец лучший код на Delphi
← →
DiamondShark © (2006-08-14 00:00) [14]
> programania © (13.08.06 22:32) [13]
Вопрос ещё раз перечитайте.
← →
programania © (2006-08-14 02:47) [15]>DiamondShark © (14.08.06 00:00) [14]
>Вопрос ещё раз перечитайте.
Перечитал:
>Необходимо в самописном браузере заменить некоторе слова в HTML коде, загружаемом с WEB сервера, ну а далее уже измененный HTML отобразить в TWebBrowser-e
Я как раз это и сделал указаным в [5] способом в своем самописном броузере
http://programania.com/si.htm
и за 1.5 года, накачал им 14078 страниц,
но нигде в них не нашел загрузку html не http
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.014 c