Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.016 c
14-98858
Adder
2003-10-10 23:47
2003.10.30
Желтые штаны - 2 раза КУ!


7-98903
Erty
2003-08-14 08:04
2003.10.30
Как с помощью кода написать программу для записи на CD-RW


3-98430
SergeyS
2003-10-10 08:31
2003.10.30
Вынуть таблицы из базы Interbase


14-98818
VBA
2003-10-12 14:07
2003.10.30
Подскажите как расшифровать польностью VBA?


7-98910
DimaK
2003-08-06 13:26
2003.10.30
Перезагрузка




   Наверх