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

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

открыватьчужие ссылки в новом окне?


Страницы:   1 2 3

ivanov ©   (2008-05-19 11:53:00) 

есть страница, http://moj.com
на этой странице несколько ссылок, некоторые из них вида
http://moj.com/thread.html,
другие же вида http://drugoj.com/
для работы используется компонент TWEbbrowser
как сделать чтобы по клику на ссылке те, которые http://moj.comоткрывались в этом-же окне, а все другие чтобы в новом окне?
как сделать проверку строки - я знаю,:

if pos(' http://moj.com/', s) > 0 then

//открываем ссылку обычным путем

else

//открываем в новом окне. <--  как реализовать?


ivanov   (2008-05-22 14:03:00) [41]

так вы же сами написали в пост #12.
каким образом тогда отделять мух от котлет, если неизвестно какие адреса реклама, а какие не реклама?
получается это событие не подходит...


DVM   (2008-05-22 13:31:00) [42]


> что конкретнo здесь не правильно?

Конкретно надо отделять мух от котлет в OnBeforeNavigate2. Это событие возникает чаще, чем ты думаешь, особенно на навороченных страницах с баннерами во фреймах и.т.д.


ivanov   (2008-05-22 12:55:00) [43]


> Что написал, то и получил, чему ж тут удивляться)


???
что конкретнoздесь не правильно?


Сергей М.   (2008-05-22 12:26:00) [44]


>
> вот пожалуста.
> куча рекламных окон.
>


Что написал, то и получил, чему ж тут удивляться)


ivanov   (2008-05-22 12:12:00) [45]

procedure tform1.Button2Click(Sender: TObject);
var flags: OleVariant;
begin
flags := 0;
webbrowser1.Navigate(' http://mail.ru', flags);
end;

procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
 Headers: OleVariant; var Cancel: WordBool);
 var s, n: string;
 p: pchar;
begin
 s := 'mail.ru';
 n := url;
 p := pchar(n);
cancel := false;
if (pos(s, url) <= 0) then begin
  shellexecute(handle, 'open', p, ' target=_blank', nil, sw_shownormal);
  cancel := true;
 end;
end;


вот пожалуста.
куча рекламных окон.


DVM   (2008-05-22 11:20:00) [46]


> ivanov

Между прочим, при клике в TWebBrowser по ссылке, в теге которой указано "Открывать в новом окне" все прекрасно открывается в новом окне браузера. Если же ты хочешь ВСЕ ССЫЛКИ открывать в новом окне, то, очевидно, ShellExecute тебе в помощь.


> ivanov   (21.05.08 17:48) [8]
>
> так, хочу код :)
> дело в том, что я пробовал через shellexcute, не работает

Может покажешь как ты пробовал? Или ты и не пробовал вовсе?


> и еще важно, на какое событие браузера это дело повесить?

OnBeforeNavigate2.


DVM   (2008-05-22 11:05:00) [47]


> открыть ссылку в браузере по дефолту через shellexecute
> не выйдет, разве что сохранять ее как файл *.url, но это
> к "мастерству" никакого отношения не имеет, а также - изврат.
>

Все выйдет еще как. Ты не пробовал в командной строке набирать:

C:\Program Files\Internet Explorer>iexplore.exe www.google.ru ???

Попробуй, удивишься.


ivanov   (2008-05-22 10:56:00) [48]

итак,резюме:
открыть ссылку в браузере по дефолту через shellexecute не выйдет, разве что сохранять ее как файл *.url, но это к "мастерству" никакого отношения не имеет, а также - изврат.
создавать новый экземпляр формы с браузером - меня не устраивает такое решение.
к сожалению в который раз убедился, что "мастера" когда доходит до относительно сложных вопросов помочь ничем, кроме как напыщено заявлять "можно", "нельзя" не могут.
печально.


Сергей М.   (2008-05-21 19:44:00) [49]


> хочу код


"Иванов на остановке, в ожиданьи кружки пива, в предкушеньи колесницы .." (С) БГ

Какой тебе еще код ?

Создавай новый экз-р TWEbbrowser и вызывай его метод Navigate


ivanov   (2008-05-21 17:48:00) [50]

так, хочу код :)
дело в том, что я пробовал через shellexcute, не работает
и еще важно, на какое событие браузера это дело повесить?


DVM   (2008-05-21 16:48:00) [51]


> а как именно?

ShellExecute.


> сохранять урл на винт и запускать через shellexecute?

Зачем сохранять? Как параметр передавать.


ivanov   (2008-05-21 08:00:00) [52]

ауу! что дальше общих фраз дело не пойдет?
ну, как всегда...


ivanov   (2008-05-19 15:37:00) [53]


> можно

а как именно?
сохранять урл на винт и запускать через shellexecute?
на какое событие  вешать?


DVM   (2008-05-19 15:22:00) [54]


> а открыть в браузере который в системе по дефолту стоит
> никак нелзя?

можно


ivanov   (2008-05-19 13:54:00) [55]

а открыть в браузере который в системе по дефолту стоит никак нелзя?


ivanov   (2008-05-19 13:52:00) [56]


> Открываем новый экземпляр формы с TWEbbrowser-ом на борту.


в смысле это как, подробнее можно?
и в каком событии это делать?


ЮЮ   (2008-05-19 12:18:00) [57]

Открываем новый экземпляр формы с TWEbbrowser-ом на борту.


Страницы:   1 2 3

Наверх

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