|
Вопрос # 1 119/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
как отключить в WebBrowser загрузку картинок,
или как загрузить только html без ресурсов?
 |
Вопрос задал: sansusan (статус: Посетитель)
Вопрос отправлен: 16 ноября 2007, 22:37
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: min@y™
Компонент TWebBrowser работает на движке Internet Explorer. Поэтому можно глобально отключить картинки в свойствах обозревателя.
Другой способ: закачивать HTML-код с сервера руками, удалить из него все img src="..." и уже потом отображать его в TWebBrowser или любом другом компоненте для отображения WEB-страниц.
Пару лет назад я написал для прикола прогу для скачивания страниц с удафкома :). Вот один метод класса, он закачивает только HTML-текст:
procedure THtmlDownloader.Execute;
var
Buffer: array of Char;
Success: Boolean;
Readed, ReadedTotal: Cardinal;
begin
FStatus:= 'Клянчу страницу ' + FURL + '...';
DoOnStatus(False);
FhFile:= InternetOpenUrl(FhInet,
PChar(FURL),
nil,
0,
INTERNET_FLAG_NO_COOKIES or INTERNET_FLAG_NO_CACHE_WRITE,
0);
if FhFile = nil
then begin
FErrorCode:= deInternetProblem;
Exit;
end;
SetLength(Buffer, FBufferSize);
FStatus:= 'Заливаю страницу ' + FURL + '...';
DoOnStatus(False);
ReadedTotal:= 0;
FTimer.Enabled:= True;
repeat
Success:= InternetReadFile(FhFile, @Buffer[0], Length(Buffer), Readed);
if Success
then FStream.Write(Buffer[0], Readed);
Inc(ReadedTotal, Readed);
FStatus:= 'Заливаю страницу ' + FURL + ' - [' + FileSize2Str(ReadedTotal) + ']';
FDeltaSize:= Readed;
DoOnStatus(False);
until (Readed = 0) or not Success or MainForm.FCancelled;
FTimer.Enabled:= False;
if not Success
then FErrorCode:= deInternetProblem;
end;
Весь файл uDownloader.pas я прицепляю к ответу. Если чего будет непонятно и/или требуется вся прога - пиши в форум. К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 17 ноября 2007, 12:03
|
Ответ #2. Отвечает эксперт: Вадим К
Здравствуйте, sansusan!
Скачать страничку по хттп можно и проще. всего одной строкой. Правда если там https, то прийдётся намного больше, но таких страниц меньше.
Итак, ставим на форму комопнент idHttp (начитая с 6 делфи идёт в комплекте с делфи), а в обработчике кнопки(или кто там хочет скачать старничку) пишем такой код
s:=idhttp1.get('https://www.delphi-int.ru/');
и всё!
Правда бывает проблема с разделителями - некоторые сервера по линуксом используют не #13#10, а только #13 для разделения строк и Мемо (а также блокното) не могут отобразить красиво.
тут поможет ещё одна строка
s := ReplaceString(s,#13,#13#10,[rfReplaceall]);
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 17 ноября 2007, 14:01
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 17 ноября 2007, 12:33; участников в обсуждении: 2.
|
Dron (статус: Студент), 17 ноября 2007, 10:35 [#1]:
Если Вам нужно загрузить только "исходник" html-страницы, т.е. отображать страницу не нужно, то проще воспользоваться компонентами для HTTP-соединения (например, idHTTP из библиотеки Indy), чем использовать целый TWebBrowser. Уточните, пожалуйста, что именно требуется.
С уважением.
|
|
sansusan (статус: Посетитель), 17 ноября 2007, 12:33 [#2]:
спасибо....
подсказали можно в IE картинки отключить через реестр
HKEY_CURRENT_USER
Software
Microsoft
InternetExplorer
Main
-> Display Inline Images (yes/no)
можно и много чего друго отключить
http://www.specinsoft.ru/
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|