Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: CL | DM;

Вниз

Перехват нажатой ссылки в tWebBrowser   Найти похожие ветки 

 
iFot ©   (2003-05-09 08:22) [0]

Имеется форма - на ней есть компонент WebBrowser1. Нужно, чтобы по нажатии на ссылку, которая вызывает новое окно эта ссылка перехватывалась и передавалась в кач-ве параметра другому приложению(что-то вроде: extwindow.exe http://link.ru/page.htm). Параметры обрабатывать получается, но как перехватывать ссылки и передавать их в кач-ве этого самого параметра имею весьма приблизительное представление. Помогите, если кто знает.


 
iFot ©   (2003-05-09 17:13) [1]

Так, ссылку ловить научился.

var url:IHTMLDOCUMENT2;
begin
Url:=IHTMLDocument2(ppDisp);
Form2.Visible:=True;
Form2.WebBrowser1.Navigate(url);
end;

Пока тренируюсь на кошках - передаю ссылку другой форме, но выдаёт ошибку:
There is no overloaded version of Navigate that can be called with these arguments.
Думаю, дело в типе переменной url - она типа iHTMLDocument2, а WebBrowser1.Navigate требует String.
F1, как эту проблему решить?


 
nikkie ©   (2003-05-09 18:39) [2]

то, что код сам пытаешься писать - молодец. а то есть тут тинейджеры...

код, конечно, неправильный, и не очень понятно, где ты его пишешь... то, что ты хочешь, делается в событии OnBeforeNavigate2.


 
iFot ©   (2003-05-09 18:52) [3]

Код пишу в OnNewWindow2. Насколько я понял, надо делать обработчик на BeforeNavigate2, там ловить ссылку и передавать её форме?


 
nikkie ©   (2003-05-09 18:54) [4]

правильно понимаешь. а еще надо браузеру сказать, чтобы на переходил сам по ссылке. посмотри параметры события - все понятно будет.


 
iFot ©   (2003-05-09 21:09) [5]

Извини за тупые вопросы, но после второй бессонной ночи я оч. плохо соображаю - параметры события это что?


 
nikkie ©   (2003-05-09 21:18) [6]

обработчик события - метод формы. у него есть параметры.


 
iFot ©   (2003-05-09 21:44) [7]

Например?


 
iFot ©   (2003-05-10 06:54) [8]

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

если ссылка_открывает_новое_окно то
WebBrowser1.Stop; //(1)
Form2.Visible:=true;
Form2.WebBrowser1.Navigate(эта_ссылка);

Непонятно несколько моментов: строчка (1) обязательно должна быть; является ли Url (var url:OleVriant) той самой ссылкой?; и последний момент - как определить открывает ли ссылка новое окно?


 
nikkie ©   (2003-05-11 23:58) [9]

1. Я не проверял, будет ли работать строчка (1). Более логично написать Cancel := True;

2. Является ли Url (var url:OleVriant) той самой ссылкой? - Да.

3. Как определить открывает ли ссылка новое окно? - Для этого надо все-таки обработать OnNewWindow. Там надо написать ppDisp := Form2.WebBrowser.DefaultInterface; - это заставит WebBrowser не открывать новое окно IE, а использовать (другой) WebBrowser из твоей программы. Если далее тебе надо вызвать другую программу и передать ей ссылку, то надо обработать OnBeforeNavigate у Form2.WebBrowser.


 
Den_IS01   (2003-05-12 09:06) [10]

А скажем такая задачка - есть фреймовая страничка. В одном из фреймов есть ссылка, как тупо по ней перейти (без клика)...
И еще - где храняться (и можно ли их исправить) данные - с какой ссылки пришел на сайт, тип ОС, разрешение экрана...


 
iFot ©   (2003-05-12 16:40) [11]

Большое спасибо



Страницы: 1 вся ветка

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
8-55670
pheonix
2003-03-27 06:02
2003.07.17
skin на delphi


1-55556
MSAlex
2003-07-06 00:06
2003.07.17
TTreeView. Как графически выделить елемент под мышкой.?


1-55507
avkiev
2003-07-03 15:37
2003.07.17
Как инициализировать переменную типа IStream ?


1-55630
Immortal_Death
2003-07-03 12:02
2003.07.17
Уникальнное имя компонента...


1-55650
FRT
2003-07-02 16:51
2003.07.17
QReport