Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.30;
Скачать: CL | DM;

Вниз

Как изменить HTML который получает и отображает TWebBrowser?   Найти похожие ветки 

 
AlexRu   (2003-09-05 13:36) [0]

Суть в том, что бы TWebBrowser отображал не совсем то, что пришло с сервера.


 
nikkie ©   (2003-09-05 14:51) [1]

А что именно должно быть измененно? От этого может зависеть, какой способ окажется лучше.

Есть рабоче-крестьянский метод - использовать DHTML возможности WebBrowser. Например, загрузить страницу, а потом ее подправить. Наверное, получится совсем коряво. По-другому - можно загрузить HTML самому, используя WinInet или IdHTTP или еще как, а потом отобразить его в WebBrowser, используя метод write. Есть изрядные минусы у обоих способов.

Более правильный способ - сделать свой Asynchronous Pluggable Protocol (APP), NameSpace Handler или MIME filter - все это страшные слова, описывающие примерно одну и ту же технологию. Можешь посмотреть вариант реализации на сайте http://www.euromind.com/iedelphi/

Там же в разделе links должна быть ссылка на раздел files в delphi-webbrowser группе на yahoo. Там я находил несколько альтернативных реализаций. Все они не то, чтобы очень суперские, но рабочие. Я писал свою реализацию, но отталкивался даже в основном не от них, а от пример db2xml из MSDN (на С++, естественно).

Наконец есть третий вариант - реализовать свой http-прокси. Можно его инкорпорировать в саму программу (чтобы не требовалось запускать его отдельно), а WebBrowser настроить так, чтобы он работал именно через этот прокси. Результат использования APP и прокси, я думаю, будет одинаково хорош. Если детали HTTP знакомы, а слово COM повергает в дрожь, то имеет смысл делать прокси. Там же на yahoo я видел пример такого прокси, но какой-то гнилой.


 
nikkie ©   (2003-09-05 14:54) [2]

Ну и еще - все сделанное с помощью APP будет работать только с WebBrowser или самим IE, а сделанное с помощью прокси сможет работать и с другими браузерами.


 
alexru   (2003-09-05 15:47) [3]

Похоже мне больше подходит способ с IdHTTP.
А можно подробнее как отобразать в WebBrowser то, что скачал и переделал?


 
nikkie ©   (2003-09-05 16:33) [4]

>как отобразать в WebBrowser то, что скачал и переделал?

1. Первым делом надо загрузить какой-нибудь документ. WebBrowser.Navigate("about:blank"); - открывает пустую страницу. Только надо аккуратно - для IE6 можно писать в документ сразу после этого, а для более ранних версий эта операция работала асинхронно, т.е. надо было либо проверять св-во WebBrowser.DefaultInterface.Busy, либо ждать события OnNavigateComplete и только после этого писать.

2. Когда документ загружен, записать в него свой HTML код можно так:
var
Doc: OleVariant;
begin
Doc := WebBrowser.DefaultInterface.Document;
Doc.Write(...);
Doc.Write(...);
Doc.Write(...);
Doc.Close;
end;



Страницы: 1 вся ветка

Текущий архив: 2003.10.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
14-98797
Сатир
2003-10-10 14:41
2003.10.30
Профессор Башкирского университета опроверг основы физики и химии


8-98749
nuflin
2003-06-30 22:28
2003.10.30
TRichEdit


6-98782
somik
2003-09-04 15:22
2003.10.30
Доступ по локалке


3-98516
Брат
2003-10-09 09:11
2003.10.30
Ошибка в OnCalcFields


3-98498
Alex81
2003-10-09 12:57
2003.10.30
Поиск в таблице