Форум: "Сети";
Текущий архив: 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