检测webbrowser控件中的java applet模式对话框

时间:2011-06-27 11:36:49

标签: java .net applet webbrowser-control

我们在winform中嵌入的.Net webbrowser控件中托管Web应用程序。

当Web应用程序中的Java小程序显示模式对话框时,仅停用Web应用程序中的小程序区域。 (要求是firefox风格的模式)。

有没有办法检测webbrowser控件中的applet是否显示模式对话框? (或者,当一个java applet对话框打开时,获取一个窗口句柄?)

2 个答案:

答案 0 :(得分:0)

使用一些JavaScript直接调用Java方法Window.getWindows()以获取现有Window个对象的数组。 (J)Frame个对象和(J)Dialog个对象都扩展为Window

请注意,AFAIR,每个小程序都会获得一个Frame来包含它。因为屏幕上会有比窗口更多的“窗口”,所以你需要检查类型。

从JS反复以适当的间隔执行此操作,并且应该可以检测Java小程序生成的任何对话框。

或者,可能更容易扩展applet并添加一些额外的方法来进行上面列出的相同检查,然后调用JavaScript来通知已打开对话框。

答案 1 :(得分: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,并且可能仅适用于某些特定平台(范围尚未知)。