![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват нажатой ссылки в tWebBrowser [D5, Win95/98]
iFot © (2003-05-09 08:22:00)Имеется форма - на ней есть компонент WebBrowser1. Нужно, чтобы по нажатии на ссылку, которая вызывает новое окно эта ссылка перехватывалась и передавалась в кач-ве параметра другому приложению(что-то вроде: extwindow.exe http://link.ru/page.htm). Параметры обрабатывать получается, но как перехватывать ссылки и передавать их в кач-ве этого самого параметра имею весьма приблизительное представление. Помогите, если кто знает.
iFot (2003-05-12 16:40:00) [1]Большое спасибо
Den_IS01 (2003-05-12 09:06:00) [2]А скажем такая задачка - есть фреймовая страничка. В одном из фреймов есть ссылка, как тупо по ней перейти (без клика)...
И еще - где храняться (и можно ли их исправить) данные - с какой ссылки пришел на сайт, тип ОС, разрешение экрана...
nikkie (2003-05-11 23:58:00) [3]1. Я не проверял, будет ли работать строчка (1). Более логично написать Cancel := True;
2. Является ли Url (var url:OleVriant) той самой ссылкой? - Да.
3. Как определить открывает ли ссылка новое окно? - Для этого надо все-таки обработать OnNewWindow. Там надо написать ppDisp := Form2.WebBrowser.DefaultInterface; - это заставит WebBrowser не открывать новое окно IE, а использовать (другой) WebBrowser из твоей программы. Если далее тебе надо вызвать другую программу и передать ей ссылку, то надо обработать OnBeforeNavigate у Form2.WebBrowser.
iFot (2003-05-10 06:54:00) [4]Так, немного выспался, кажись начинаю догонять.
На OnBeforeNavigate2 вешается приблизительно следующее:
(пока на русском :))
если ссылка_открывает_новое_окно то
WebBrowser1.Stop; //(1)
Form2.Visible:=true;
Form2.WebBrowser1.Navigate(эта_ссылка);
Непонятно несколько моментов: строчка (1) обязательно должна быть; является ли Url (var url:OleVriant) той самой ссылкой?; и последний момент - как определить открывает ли ссылка новое окно?
iFot (2003-05-09 21:44:00) [5]Например?
nikkie (2003-05-09 21:18:00) [6]обработчик события - метод формы. у него есть параметры.
iFot (2003-05-09 21:09:00) [7]Извини за тупые вопросы, но после второй бессонной ночи я оч. плохо соображаю - параметры события это что?
nikkie (2003-05-09 18:54:00) [8]правильно понимаешь. а еще надо браузеру сказать, чтобы на переходил сам по ссылке. посмотри параметры события - все понятно будет.
iFot (2003-05-09 18:52:00) [9]Код пишу в OnNewWindow2. Насколько я понял, надо делать обработчик на BeforeNavigate2, там ловить ссылку и передавать её форме?
nikkie (2003-05-09 18:39:00) [10]то, что код сам пытаешься писать - молодец. а то есть тут тинейджеры...
код, конечно, неправильный, и не очень понятно, где ты его пишешь... то, что ты хочешь, делается в событии OnBeforeNavigate2.
iFot (2003-05-09 17:13:00) [11]Так, ссылку ловить научился.
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, как эту проблему решить?