2009-09-21 14 views
3

WebBrowserコントロールを初めて使用しています。現在のプロジェクトでは、WebBrowserコントロールを使用して既存のプロジェクトと統合します。すべてのポップアップウィンドウが新しいウィンドウフォームで表示されます。ポップアップウィンドウで「javascript window:close」が呼び出されると、IEインスタンスは常にプロンプ​​トを表示します。このウィンドウを閉じますか?私たちは、WndProceを使ってWM_Destroyをチェックして親フォームに通知します。つまり、閉じようとしているものはうまく動作します。私たちがコントロールを気に入らないのは、「このウィンドウを閉じますか?」というメッセージだけです。メッセージを抑制する方法はありますか?WebBrowserコントロール:メッセージを抑制する方法:このウィンドウを閉じますか?

どのような提案も高く評価されます。ありがとう。

答えて

5

は、ポップアップを閉じるには、次の2つの関数のいずれかを使用してみてください:

function closeWindow() 
{ 
    window.opener = self; 
    window.close(); 
} 

または:

function closeWindow() 
{ 
    window.open('', '_self'); 
    window.close(); 
} 
+2

IEで2番目のオプションが私のために働いていました。まさにブラウザに何をするよう指示していますか? – deostroll

+1

ターゲットウィンドウがこれが実行されるウィンドウであることを意味するターゲット '_self'を持つ特定のURLのない新しいウィンドウを開きます。その効果は、ドキュメントウィンドウがそれ自身のウィンドウをオープナウィンドウにし、したがってそのオーナーシップをとることです。それが開かれて以来、それ自体を閉じるためのアクセスを持っています... – awe

2

これは、IEのセキュリティ機能です。この考えは、潜在的に悪意のあるスクリプトがユーザーを閉じたくないウィンドウを閉じるのを防ぐことです。 例外は、同じドメイン上のスクリプトによってウィンドウが開かれた場合です。ウィンドウがそのウィンドウを「所有している」Webアプリケーションであることを示しているため、ウィンドウを閉じることもできます。この場合、警告は表示されません。

+0

しかし、私のスクリプトは同じドメインにありますが、まだ警告が表示されます:/ IEを試してみてください - しかし、あなたはもう一度失敗しました –

+0

@SamWatkins:また、現在のセッション内では同じWebアプリケーションである必要があります。 – awe

関連する問題