检测Applet何时加载完成

6

如何检测Java applet是否已成功加载,而不需要轮询浏览器或使用setTimeout?

有没有可以绑定的事件?

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

2个回答

3
你的意思是从javascript中获取信息吗?你可以询问applet。在init()中将布尔值设置为true,并在调用的方法中返回它...哦,等等,你写道“不使用setTimeout”。那么,在这种情况下,我想你必须走另一条路,让你的applet调用一个javascript方法(例如JSObject.getWindow(this))...但我认为这比使用计时器直到applet加载更困难/容易出错。

我最终使用计时器来判断小程序何时加载完成,这比其他选项更简单。 - Lydon Ch

0

我知道这个问题很旧了,但我偏爱的方法是这样做的,因为Java加载屏幕实现起来相当困难,而使用spin.js设置一个全屏div则不然。我的方法是让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) { }
    }
  }

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接