Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TWebBrowser


Fiend ©   (2002-09-11 17:02:00) 

Здрасте уважаемые!

Вопрос такой:
как можно определить, текст ссылки, на которой нажал пользователь?

Т.е. мне нужно в событии BeforeNavigate2 (вызывается при навигации) определить, что за текст был виден юзеру.

Например, если тэг HTML выглядел так: <a href=" http://delphi.mastak.ru">Перейти на сайт мастеров Делфи</a>
как получить текст "Перейти на сайт мастеров Делфи"


Fiend   (2002-09-12 12:42:00) [1]

Решил опубликовать ответ, дабы следующие за мной по этому пути люди не становились на грабли и не спотыкались.

За помощь огромное спасибо Опухшему!
Виртуальное пиво ему!

Ответ достаточно прост, но для человека, который практически не работал с ОЛЕ (т.е. для меня), это оказался тёмный лес.

procedure TForm1.EmbeddedWB1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
var
doc:variant;
Link:variant;
i:INteger;
cnt:INteger;
begin
doc:=EmbeddedWB1.Document;
cnt:=doc.links.length-1;
for i:=0 to cnt do begin
if varastype(doc.links.item(i),varString) = varastype(URL,varString) then begin
Link:=doc.links.item(i);
Showmessage(Link.InnerText);
end;
end;

Грубо говоря, в обработчике события OnBeforeNavigate2, которое вызывается, когда TWebBrowser получает новый адрес для навигации, нужно пробежаться по всем ссылкам всё еще активного документа, и сравнить их url, с урлом навигации.

Спасибо всем, кто откликался в чате. Опухшему отдельное СПОС!


Opuhshii   (2002-09-11 17:23:00) [2]

%) Почитай,.. http://www.compress.ru/Article.asp?id=1127


Наверх

Титульная страница Поиск, карта сайта Написать письмо