Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Снова браузер :) 
:(
    Опции темы
Rondo
Дата 6.7.2006, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 24.2.2006
Где: там..

Репутация: нет
Всего: нет



Извеняюсь за такое колличество созданных тем smile
Как можно запретить в браузере нажимать на определенную ссылку? Тоесть ты на нее нажимаешь и ничего непроисходит. 
--------------------
Начинающий кодер  
PM MAIL ICQ   Вверх
volvo877
Дата 6.7.2006, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 5
Всего: 116



Обрабатывать OnBeforeNavigate2. Например, вот так:

Код
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  if url = 'http://google.com/' then begin
    showmessage('cancelled'); cancel := true; // Отменяем переход
  end;
end;

// Попробуй нажать на эту кнопку...
procedure TForm1.Button3Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://google.com/');
end;
 
PM MAIL   Вверх
Rondo
Дата 6.7.2006, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 24.2.2006
Где: там..

Репутация: нет
Всего: нет



Все равно переходит... smile 
--------------------
Начинающий кодер  
PM MAIL ICQ   Вверх
Yanis
Дата 6.7.2006, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 3
Всего: 111



Rondo
Значит ты что то напутал. Показывай код. вариант volvo877 полностью рабочий. 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Rondo
Дата 6.7.2006, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 24.2.2006
Где: там..

Репутация: нет
Всего: нет



Код

procedure TForm1.browser1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  if URL = 'http://blablabla.ru' then
  begin
    ShowMessage('Canceled');
    Cancel:= true;
  end;
end;

Только мне нужен переход не по кнопке как у Volvo а на клике по ссылке в браузере.

Еще бы меня устроил вариант полность убрать эту ссылку smile 
--------------------
Начинающий кодер  
PM MAIL ICQ   Вверх
_hunter
Дата 6.7.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 2
Всего: 98



пройдись по всем элементам страницы и установи ссылке Visible в false 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Yanis
Дата 6.7.2006, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 3
Всего: 111



Rondo
событие OnBeforeNavigate2 возникает не зависимо от того кликаешь ты на ссылке или на кнопке. Так или иначе вызывается метод Navigate в котором мы и обрабатываем ссылку. Попробуй такой код:
Код

  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  if URL = 'http://www.yandex.ru/' then
    begin
      ShowMessage('Hello :)');
      Cancel := True;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.ya.ru');
end;

Попробуй такой код, когда загрузится ya.ru нажми на банер Яндекса. Прога тебя не пустит... 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Rondo
Дата 6.7.2006, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 24.2.2006
Где: там..

Репутация: нет
Всего: нет



Yanis, хоть тресни smile Но она открывается  smile 
_hunter, можешь показать код? 
--------------------
Начинающий кодер  
PM MAIL ICQ   Вверх
volvo877
Дата 6.7.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 5
Всего: 116



Цитата(Rondo @  6.7.2006,  10:44 Найти цитируемый пост)
она открывается
Кто "она"? Страница yandex.ru? Не открывается она, только что проверил.

ya.ru открылась, кликнул на баннер Яндекса, получил сообщение "Hello", и остался там, где был... Вот что происходит.
 
PM MAIL   Вверх
Mr.Floppy
Дата 6.7.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: нет
Всего: 1



Rondo, у Yanis'а всё работает...
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    procedure FormCreate(Sender: TObject);
    procedure WebBrowser1BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate('ya.ru');
end;

procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  if URL = 'http://www.yandex.ru/' then    
    begin
      ShowMessage('Hello :)');
      Cancel := True;
    end;
end;

end.
 
PM MAIL   Вверх
Yanis
Дата 6.7.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 3
Всего: 111



Rondo
По теме тебе уже ответили. Если хочешь решить свою проблему, то показывай код. Иначе хватит нас тут дёргать smile 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Rondo
Дата 6.7.2006, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 24.2.2006
Где: там..

Репутация: нет
Всего: нет



Создал новый проект.. там все работает smile непойму почему мой тот который я сейчас делаю непрет  smile
Ладно.. буду искать где у меня подвох smile И всетаки хотелось бы еще узнать как прятать ссылки  smile  
--------------------
Начинающий кодер  
PM MAIL ICQ   Вверх
Rondo
Дата 6.7.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 24.2.2006
Где: там..

Репутация: нет
Всего: нет



хаха, нешел ошибку.. Так сразу и не поймешь.
Если например блочить ссылку http://yandex.ru ссылка работает а если http://yandex.ru/ тогда блочет... 
--------------------
Начинающий кодер  
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.