Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 09.11.2009, 16:41   #1
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
Вопрос Как запретить переход на определенный URL в Webbrowser?

Всем доброго времени суток!

У меня к вам вопрос, который я уже изложил в названии темы, а теперь хочу объяснить свою проблему поподробней. Например, я могу запретить переход на URL таким образом:

Код:
procedure TfrmMyBrowser.Timer2Timer(Sender: TObject);
begin
  frmMyBrowser.SearchTextFile1;
end;

procedure TfrmMyBrowser.SearchTextFile1;
var
f: TextFile;
TextFile1: string;
i: integer;
begin
  AssignFile(f, 'TextFile1.txt');
  Reset(f);
  for i:=1 to n do
    begin
      Readln(f, TextFile1);
      if edURL.Text=TextFile1 then
        begin
          edURL.Clear;
          ShowMessage('Данный сайт находится в списке запрещенных' + #10#13 + 'в виду чего соединение было прервано');
          Exit;
        end;
    end;
  CloseFile(f);
end;
В TextFile1.txt у меня хранится адрес запрещенного сайта, к примеру www.mail.ru, а в проге адрес сайта вводится в edURL:TEdit;

Если прописать www.mail.ru, то всё нормально, но если сразу вставить http://mail.ru/cgi-bin то webbrowser переходит на этот сайт.

А мне нужно чтобы нельзя было зайти никаким образом. Помогите пожалуйста...

Последний раз редактировалось Stilet; 09.11.2009 в 16:56.
Marsel737 вне форума Ответить с цитированием
Старый 09.11.2009, 16:44   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,305
По умолчанию

Тебе до момента
Код:
if edURL.Text=TextFile1 then
нужно отфильтровать все до твоего mail.ru (лучше делать это в отдельной переменной). Ну можно искать по слешу, короче третий слеш твой.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.11.2009, 16:47   #3
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Попробуйте так:
Код:
if pos(TextFile1,edURL.Text)<>0 then
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 09.11.2009, 16:49   #4
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Utkin, а по подробней можно, а то ничё не понял, если честно.

Каким образом отфильтровать все до mail.ru? И что значит искать по слешу?
Marsel737 вне форума Ответить с цитированием
Старый 09.11.2009, 16:53   #5
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,074
По умолчанию

Marsel737, а чем вам решение russian-stalker не устраивает ?
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s : String;
begin
s := 'http://mail.ru/cgi-bin';
if pos('mail',s)<>0 then
  ShowMessage('Error')
  else
  WebBrowser1.Navigate(s);
end;
Думаю смысл ясен...
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 09.11.2009, 16:56   #6
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Russian-stalker, спасибище тебе огромедное, я над этим весь день голову ломал, а сделал так как ты предложил и вуаля - всё работает как надо!!!

У меня возник ещё один вопрос к вам, мастерам программирования, касательно всё того же WebBrowser'а.

У меня при переходе из ссылки в яндаксе у открытого сайта прописывается примерно вот такой URL: http://yandex.ru/yandsearch?clid=145...0%BE%D1&lr=225, вмсето нормального адреса сайта, к примеру www.mail.ru, так вот, как сделать, чтобы вместо этой галиматьи сразу прописывался норм адрес сайта?

Последний раз редактировалось Stilet; 11.11.2009 в 14:29.
Marsel737 вне форума Ответить с цитированием
Старый 09.11.2009, 20:48   #7
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Думаю никак, но можно отлавливать страницу допустим тем же таймером:
Код:
webbrowser1.LocationURL;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 09.11.2009, 20:49   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

вообще то так в любом браузере открывается.
но там редирект идет далее.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.11.2009, 20:55   #9
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

russian-stalker, я так и делал:
edURL.Text:=WebBrowser1.LocationURL ;

Толку от этого ноль, интересно как это в норм браузерах реализуется?
Marsel737 вне форума Ответить с цитированием
Старый 09.11.2009, 21:00   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

вообще то это правильный URL содержащий параметры запроса...

или вас смущают URL-кодированные символы?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переход по URL Juffin Общие вопросы Delphi 7 29.04.2009 17:12
как прописать url в webbrowser в с# hl_PrapoR HTML и CSS 1 12.04.2009 18:18
Excel. как удалить из таблицы все гиперссылки? и запретить что бы URL ими становились 9go Microsoft Office Excel 2 17.01.2009 11:19
Как запретить переход на ячейку StringGrid Comer_Jus Общие вопросы Delphi 2 26.05.2008 15:04
Как запретить переход между диалоговыми окнами. dnkR Общие вопросы Delphi 1 18.01.2007 07:59