如何在不使用setTimout轮询浏览器的情况下检测java-applet是否已成功加载?
是否有任何可以绑定的事件?
问题是:有一个弹出窗口询问用户是否信任applet, 这需要几秒钟,直到用户点击“是” 同时我的代码无法执行,因为applet尚未加载。
答案 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,只需在准备就绪时运行该函数。