Открывайте новые страницы также в TWebBrowser - PullRequest
3 голосов
/ 15 июля 2011

Я создал приложение с twebBrowser в нем. Проблема в том, что когда я нажимаю на какую-то ссылку, скажем, в gmail, она открывается в новом окне моего браузера по умолчанию (т.е. IE). Как мне заставить его работать, как Firefox или Chrome и т. д., который открывает ссылки в их окнах. URL должны открыться в окне TWebBrowser. Должен ли я создать новую форму во время выполнения с TWebBrowser в нем во время выполнения для этого? Код не нужен как таковой, идеи подойдут

Заранее спасибо.

P.S. Моя организация блокирует Gmail, Facebook и т. Д. Однако через мой TWebBrowser я могу их открыть. Может ли мой QA ppl увидеть это в своем журнале? Мое предположение будет нет, с тех пор они его заблокируют. Каков ваш комментарий к этому

1 Ответ

5 голосов
/ 15 июля 2011

TWebBrowser имеет событие OnNewWindow2. Предполагая, что форма, содержащая TWebBrowser, называется Form1, а сам веб-элемент управления называется WebBrowser1, напишите обработчик, подобный этому:

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
var NF: TForm1;
begin
  NF := TForm1.Create(Application);
  NF.Visible := True;
  NF.WebBrowser1.RegisterAsBrowser;
  ppDisp := NF.WebBrowser1.DefaultInterface;
end;

Это создаст новое окно с новым TWebBrowser, когда «щелчок» должен привести к новому окну.

...