![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение HTML кода, перед его загрузкой в TWebBrowser
DelphiN! © (2006-08-09 13:55:00)Необходимо в самописном браузере заменить некоторе слова в HTML коде, загружаемом с WEB сервера, ну а далее уже измененный HTML отобразить в TWebBrowser-e
programania (2006-08-14 02:47:00) [1]>DiamondShark © (14.08.06 00:00) [14]
>Вопрос ещё раз перечитайте.
Перечитал:
>Необходимо в самописном браузере заменить некоторе слова в HTML коде, загружаемом с WEB сервера, ну а далее уже измененный HTML отобразить в TWebBrowser-e
Я как раз это и сделал указаным в [5] способом в своем самописном броузере
http://programania.com/si.htm
и за 1.5 года, накачал им 14078 страниц,
но нигде в них не нашел загрузку html не http
DiamondShark (2006-08-14 00:00:00) [2]
> programania © (13.08.06 22:32) [13]
Вопрос ещё раз перечитайте.
programania (2006-08-13 22:32:00) [3]>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-13 13:21:00) [4]
> programania ©
Интернет тут совсем ни при чём. Речь идёт о WebBrowser, а ему абсолютно фиолетово, откуда именно загружается контент, потому что архитектура компонентная.
Странно, что вы приводите пример pluggable-protocol, но так, похоже, и не поняли, в чём там соль.
Пользоваться надо адекватными средствами. Для задачи "заменить некоторе слова в HTML коде" существует механизм подключаемых фильтров.
Зачем городить костыли, если есть возможность работать на уровне абстрактного потока?
Ketmar (2006-08-13 04:21:00) [5]> [10] programania © (13.08.06 03:17)
а при чём тут "интернет"? в [8] ни о какой "интернете" речи не шло.
programania (2006-08-13 03:17:00) [6]>Ketmar © (12.08.06 22:51) [9]
не надо сочинять
нужен реальный адрес чтобы попробовать
укажите вместо "что-то" нормальный адрес HTML кода в интернете
Ketmar (2006-08-12 22:51:00) [7]> [8] programania © (12.08.06 22:38)
res://что-то
file://что-то
ms-help://что-то
my-super-custom-protocol://что-то
хватит, или ещё сочинять?
programania (2006-08-12 22:38:00) [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
не для всего что загружает.
DiamondShark (2006-08-11 11:24:00) [9]
> programania © (09.08.06 22:36) [5]
> http://programania.com/namespace.zip 91кб
> пример как перехватывать все http запросы webbrowser в Delphi5
> и отдавать свое
Неадекват.
Зачем http перехватывать?
А если загружаеться с file:// или (*крестиццо*) с ms-help:// ?
А вот MIME-фильтры как раз индифферентны к источнику контента, они с абстракным потоком работают.
SergP (2006-08-10 14:55:00) [10]> [0] DelphiN! © (09.08.06 13:55)
> Необходимо в самописном браузере заменить некоторе слова
> в HTML коде, загружаемом с WEB сервера, ну а далее уже измененный
> HTML отобразить в TWebBrowser-e
Так браузер таки самописный или все-таки TWebBrowser?
programania (2006-08-09 22:36:00) [11]http://programania.com/namespace.zip 91кб
пример как перехватывать все http запросы webbrowser в Delphi5
и отдавать свое
DiamondShark (2006-08-09 16:16:00) [12]Прокси и сети здесь совершенно ни при чём.
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. Реализация фильтра та же самая.
Сергей М. (2006-08-09 14:48:00) [13]Что мешает встроить прокси в клиента ?
DelphiN! (2006-08-09 14:36:00) [14]> [1] Сергей М. © (09.08.06 14:32)
Ну а мне нужно со стороны клиента ...
Сергей М. (2006-08-09 14:32:00) [15]Вообще-то это обязанности прокси, а не клиента ..