4

Web ブラウザー コントロールを使用して Web サイトから情報を取得しています。詳細リンクがあり、クリックするとポップアップ ウィンドウが開き、Web ブラウザに詳細が表示されます。

Webブラウザコントロールのリンクをクリックして(プログラムで)別のウィンドウを開いて実行エラーを表示した場合、これらを行うにはどうすればよいですか。

しかし、エクスプローラーでは機能しています。また、詳細リンクは、Internet Explorer でメイン ページを開いた場合にのみ機能することに気付きました。それ以外の場合は、詳細 URL を Internet Explorer から直接呼び出すと、同じエラーが発生します。

4

3 に答える 3

13

私は最近、非常によく似た状況に遭遇しました。私の場合、ポップアップブラウザは埋め込みブラウザのセッションを共有していませんでした。私がしなければならなかったのは、NewWindowイベントをキャプチャしてキャンセルし、目的のURLを埋め込みブラウザに送信することでした。ActiveXブラウザインスタンスを使用する必要がありました。これは、起動しようとしたURLを提供するためです。これが私のコードです:

これを機能させるには、プロジェクトにMicrosoft InternetControlsCOM参照を追加する必要があります。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        // this assumes that you've added an instance of WebBrowser and named it webBrowser to your form
        SHDocVw.WebBrowser_V1 axBrowser = (SHDocVw.WebBrowser_V1)webBrowser.ActiveXInstance;

        // listen for new windows
        axBrowser.NewWindow += axBrowser_NewWindow;
    }

    void axBrowser_NewWindow(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Processed)
    {
        // cancel the PopUp event
        Processed = true;

        // send the popup URL to the WebBrowser control
        webBrowser.Navigate(URL);
    }
}
于 2013-03-06T06:44:24.400 に答える
0

Middasの回答に絞り込みます...

  • COM 参照 Microsoft Internet Controls を追加します。
  • ミダスコードを使用。
  • form_Load で Uri を定義すると、すべてのポップアップが winform WebBrowser を直接変更します。
于 2014-01-21T04:02:41.503 に答える