检测何时加载Applet

时间:2010-09-17 08:23:20

标签: javascript load applet

如何在不使用setTimout轮询浏览器的情况下检测java-applet是否已成功加载?

是否有任何可以绑定的事件?

问题是:有一个弹出窗口询问用户是否信任applet, 这需要几秒钟,直到用户点击“是” 同时我的代码无法执行,因为applet尚未加载。

2 个答案:

答案 0 :(得分:3)

你的意思是从javascript? 你可以问小程序。让它在init()中将布尔值设置为true,并在你调用的方法中返回...哦等等,你写了“不使用setTimeout”。好吧,在这种情况下,我猜你必须反过来,并让你的applet调用一个javascript方法(例如与JSObject.getWindow(this);)...但我觉得这更难/容易出错而不是使用计时器,直到小程序加载。

答案 1 :(得分:0)

我知道这个问题已经很老了,但是我喜欢这样做的方法,因为Java加载屏幕很难实现,而设置一个全屏div而不是spin.js,就是告诉applet调用一个JavaScript函数,当java applet的init()函数运行时,它隐藏了加载div。

从Java调用JavaScript函数非常简单:

import java.net.*;

public void init() {
    if (!isJava5OrSuperior()) {
      showError(getLocalizedString("requirementsMessage"));
    } else {
      createAppletApplication();
      try {
        getAppletContext().showDocument
          (new URL("javascript:appletReady()"));
        }
      catch (MalformedURLException me) { }
    }
  }

这将调用页面的appletReady()函数,无论它是从另一个JS文件链接还是直接在HTML中编写,只要Applet本身运行即可。因此,无需无限期地轮询您的applet,只需在准备就绪时运行该函数。