2011-07-15 15 views
3

twebBrowserを使ってアプリを作成しました。問題は、Gmailのようなリンクをクリックすると、デフォルトのブラウザ(IE)の新しいウィンドウで開きます。どのように私はfirefoxやchromeのように彼らのウィンドウでクリックしたリンクを開くように動作させることができます。 URLはTWebBrowserのウィンドウで開きます。実行時に実行時にTWebBrowserを使用して新しいフォームを作成する必要がありますか?コードはそのようには必要ないので、アイデアはTWebBrowserでも新しいページを開く

ありがとうございました。

P.S.私の組織はGmail、Facebookなどをブロックしますが、私のTWebBrowserを通して、私はそれらを開くことができます。私のQAのpplはそのログにそれを見ることができますか?私の推測は、それ以来、彼らはそれをブロックするだろう、ノーとなります。これに関するあなたのコメントは何ですか。

+1

"PS"について:サイトはアプリケーションレベルではなくネットワークレベルでブロックされている可能性が最も高いです。あなたのデフォルトのIEブラウザがそれらにアクセスできない場合、あなたの 'TWebBrowser'はそれらにアクセスすることができません。 'TWebBrowser'は実際には' IE'ウィンドウなので、実際は*同じブラウザです。 –

+0

しかし、私のIEは、サイトにアクセスすることはできません、私のTWebBrowserすることができます..それは私が言った。 – CyprUS

+0

はい、ログに記録されます。しかし、ネットワーク/ルータの設定ではなくIEオプションを使ってサイトをブロックしている場合(そうでないと、@Cosminが実際にIEウィンドウであると言ってTWebBrowserにアクセスできるとは説明できません)、 。しかし、あなたの組織がなぜこれらのサイトをブロックしているのか(人々は時間を過ごすのに時間がかかりますか?)、このような企業ポリシーを挑戦しようとするのが賢明かどうか、 –

答えて

5

TWebBrowserは、OnNewWindow2イベントを持っています。

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と、新しいウィンドウを作成します。TWebBrowserを保持しているフォームがForm1という名前およびWebコントロール自体WebBrowser1命名され、このようなハンドラを記述していると仮定すると、新しいウィンドウにつながる。

関連する問題