0

私のクライアントには、ユーザーがログオンしたときに「スプラッシュ」画面を表示する必要があります。現在、私のクライアントは、 System.Windows.Forms.WebBrowserクラスをインスタンス化して Web ページをホストする Windows アプリケーションを使用していますが、さまざまな理由から、これは不適切です。

クライアントから、Web ページをホストするブラウザー コントロールを含むクロムフリーのモーダル Windows フォームを作成するように依頼されました。このページは、メッセージと、「はい」(別の URL に移動) と「いいえ」(ブラウザを閉じる) の 2 つのボタンで構成されます。

現在の (不十分な) 化身では、「いいえ」ボタンは、以下を含む JavaScript 関数を呼び出します。

window.close();

これは現時点では問題なく動作しますが、明らかに (新しい化身で) Web ページが Windows フォーム内のブラウザー コントロール内でホストされている場合、window.close は Windows フォームに自動的にバブルアップしません。

では、Windows フォームがブラウザ コントロールで発生する window.close イベントを「検出」する方法はありますか?

上記が明確であることを願っています。

どうもありがとう

エドワード

4

2 に答える 2

0

みんな、ありがとう。

さらに掘り下げると、Sudhakar Bの答えが機能します。追加しなければなりませんでした

   [System.Runtime.InteropServices.ComVisibleAttribute(true)]

クラスを飾るために。

于 2013-03-15T14:23:01.487 に答える
0

window.close を呼び出す代わりに、javascript から外部 C# 関数を呼び出します。

window.external.CloseWindow

オブジェクトをスクリプトとして設定します

webBrowser1.ObjectForScripting = this;

C# クラスには CloseWindow 関数が必要です

またはwindow.closeをオーバーライドする

window.close=function() { window.external.CloseWindow(); }
于 2013-03-15T11:19:39.840 に答える