Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];

Вниз

Как изменить 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-98836
PHPAsker
2003-10-11 19:50
2003.10.30
Windows 2003 Server, Windows Media Center Edition


4-98921
SH
2003-08-26 17:35
2003.10.30
Есть ли в лотке CDROM компакт-диск?


3-98517
td
2003-10-02 22:38
2003.10.30
Visual FoxPro в dBase IV


14-98852
ИМХО
2003-10-09 19:10
2003.10.30
Футбол и мафия


14-98837
reticon
2003-10-11 19:06
2003.10.30
Футбол. Чемпионат Европы. Россия-Грузия.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский