Примет 3. Блокирование, перенаправления. Пока речь идет о "локальном" браузере который вы видите как компонент на вашей форме, далее в примерах мы плавно перейдем к Internet Explorer. Подключите модуль Masks. Добавьте еще два TEdit на вашу форму. Создайте обработчик события BeforeNavigate2. Рассмотрим переменные которые передаются в этот обработчик: pDisp: IDispatch - интерфейс к браузеру вызвавшему это событие. Сейчас это лишено смысла, однако мы будем использовать именно его, хотя бы для того что бы постепенно привыкать к COM программированию. URL - URL по которому будет произведена загрузка Flags - флаги, пока не рассматриваем их состояние TargetFrameName - если страница состоит из нескольких фреймов PostData - если пользователь сделал Post, например нажал кнопку SubMit на страницы и собирается передать данные в сеть. Headers - рассмотрим позже Cancel - по умолчанию True - загрузка разрешена. Вот обработчик: procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); begin if MatchesMask(URL, '*' + Edit3.Text + '*') then begin Cancel := true; ShowMessage('Block this URL: ' + Edit3.Text); end else if not MatchesMask(URL, '*' + Edit2.Text + '*') then begin Cancel := true; OleVariant(pDisp).Navigate(Edit2.Text); end; end; Расмотрим его подробней: Блокирование: if MatchesMask(URL, '*' + Edit3.Text + '*') then begin Cancel := true; ShowMessage('Block this URL: ' + Edit3.Text); end Если URL адрес заданный пользователем совпадает с адресом который мы блокируем (обратите внимание на использование маски), то запрещаем загрузку, показываем пользователю предупреждение. Перенаправление: if not MatchesMask(URL, '*' + Edit2.Text + '*') then begin Cancel := true; OleVariant(pDisp).Navigate(Edit2.Text); end; Если заданный URL не совпадает с URL для перенаправления - запретим загрузку и перенаправим браузер на указанный нами URL. Обратите внимание на обращение к браузеру через COM интерфейс. pDisp - не что иное как ваш браузер, мы уверены в этом, как и в том что у него есть метод Navigate, поэтому мы разрешаем себе обратится к нему как к абстрактному методу OleVariant(pDisp). Другими словами - это точно интерфейс нашего браузера и мы знаем что у него есть метод Navigate, вызываем его.