Главная страница
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.018 c
1-98557
KIR
2003-10-20 12:07
2003.10.30
Пиксели в миллимерты


14-98806
Gfa
2003-10-12 13:57
2003.10.30
Смешно :)


1-98656
Dimedrol
2003-10-17 10:43
2003.10.30
Как скопировать в буфер Unicod-овскую строку ?


3-98464
Broot
2003-10-11 06:29
2003.10.30
Русский язык в базе данных DBASE


1-98540
AlexTregubov
2003-10-19 13:46
2003.10.30
Иконки, ассоциированные с устройствами