Форум: "Сети";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];
ВнизПерехват нажатой ссылки в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c