2011-06-27 18 views
0

私たちはwinformに埋め込まれた.Net WebブラウザコントロールでWebアプリケーションをホストしています。webbrowserコントロールのjavaアプレットモーダルダイアログを検出する

WebアプリケーションのJavaアプレットがモーダルダイアログを表示すると、Webアプリケーション内のアプレット領域のみが非アクティブになります。 (要件はFirefoxスタイルのモダリティです)。

Webブラウザコントロールのアプレットがモーダルダイアログを表示していることを検出する方法はありますか? (Javaアプレットダイアログが開いているときにウィンドウハンドルを取得する)

答えて

0

sun.plugin2.main.client.ModalityHelper.installModalityListener()を使用してください。これは、modalityPoppedとmodalityPushedを通知します。

http://www.javasourcecode.org/html/open-source/jdk/jdk-6u23/sun/plugin2/main/client/ModalityHelper.html#installModalityListener%28sun.plugin2.main.client.ModalityInterface%29

のJava 6が必要であり、唯一のいくつかの特定のプラットフォーム(未知の範囲)で動作する可能性があります。

0

JavaメソッドWindow.getWindows()をいくつか呼び出すと、既存のWindowオブジェクトの配列を直接呼び出すことができます。 (J)Frameオブジェクトと(J)DialogオブジェクトはすべてWindowに拡張されます。

AFAIRでは、各アプレットにはFrameが含まれています。画面上にはダイアログだけでなく、より多くの「ウィンドウ」があるので、タイプをチェックする必要があります。

JSから繰り返し適切な間隔で実行し、Javaアプレットが生成するダイアログを検出できるようにする必要があります。

また、アプレットを拡張して上で概説した同じチェックを行うためのいくつかの追加メソッドを追加する方が簡単かもしれません。そして、ダイアログを開いたことを通知するJavaScriptを呼び出します。

+0

残念ながら、Webブラウザで実行されているアプレットを制御することはできません。他の部門や企業が作成しています(そうでなければ、アプレットがwinformを呼び出して「実際の」モーダルダイアログを表示します。欲しいです ;-) )。私は本当に繰り返しの間隔でチェックしたくないです。私は、私が購読できるシグナルを期待していた。 – user571182

+0

* "私が購読できるシグナルを期待していた。" *私は世界平和と疫病、干ばつと飢饉の終焉を望んでいる。 –

+0

ニース - 私はコメントをdownvoteできますか? ;-)それは、Firefoxがメッセージポンプを介してモーダルダイアログを検出したようです。私はそれを試みます。 – user571182

関連する問題