![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загрузка документа по ссылке [D5, D6, D7, Win95/98, WinME]
Max2002 © (2003-02-03 13:16:00)Уважаемые мастера Delphi! Не поможете ли решить следующую проблему: имеется компонент TWebBrowser, содержащий достаточно большой HTML-документ (порядка 10Mb). Внутри документа имеются внутренние ссылки. Вопрос: можно ли используя методы TWebBrowser застваить его переходить к конкретному разделу, не осуществляя повторную загрузку документа? Если просто WebBrowser1.Navigate(...), то документ загружается заново, и после этого происходит переход на ссылку - скорость, естественно, крайне медленная...:(
с уважением, Максим
int64 (2003-02-03 22:45:00) [1]
procedure TForm1.MyNavigate(AnchorName: string);
var Doc: IHTMLDocument2;
Coll : IHTMLElementCollection;
i: integer;
begin
Doc:= IHTMLDocument2(WebBrowser1.Document);
if assigned(Doc) then
begin
Coll:=IHTMLElementCollection(Doc.anchors);
for i:=0 to Coll.length-1 do
begin
if (Coll.item(i,varEmpty) as IHTMLAnchorElement).name=AnchorName then
(Coll.item(i,varEmpty) as IHTMLElement).scrollIntoView(True);
end;
end;
end;
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
if pos("#", url)<>0 then
begin
Cancel:= True;
url:= Copy(url, pos("#", url)+1, length(url)-pos("#", url));
MyNavigate(url);
end;
end;
Собственно, решение лобовое:
Если в адресе стоит символ "#", то считается, что после этого символа идёт имя якоря.
Поэтому, условия и проверки сам вставь.
Smithson (2003-02-03 13:30:00) [2]100 Mb HTML ?!!!!!