检测 Applet 何时加载

发布于 2024-09-24 07:06:45 字数 155 浏览 3 评论 0原文

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

有什么我可以绑定的事件吗?

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

How can I detect whether a java-applet has been loaded successfully without polling the browser /using setTimout ?

Is there any event that I can bind to?

The problem is: there is a pop up asking the user whether he trusts the applet or not,
and that takes a few seconds until the user clicks "Yes"
,meanwhile my code fails to execute because the applet has not been loaded.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

涙—继续流 2024-10-01 07:06:45

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

You mean from javascript ?
You can ask the applet. Have it set a boolean to true in init(), and return this in a method you call ... oh wait, you wrote "without using setTimeout". Well, in this case, I guess you have to go the other way around, and have your applet call a javascript method (for instance with JSObject.getWindow(this);)... But I think this is more difficult/bug prone than using a timer until the applet is loaded.

—━☆沉默づ 2024-10-01 07:06:45

我知道这个问题已经很老了,但我更喜欢的方法是告诉小程序调用 JavaScript,因为 Java 加载屏幕很难实现,而使用 spin.js 设置全屏 div 则不然。当 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 中编写脚本。因此,您不必无限期地轮询您的小程序,只需在准备就绪时运行该函数即可。

I know this question is quite old, but my preferred way to do this, because Java Loading Screens are pretty tough to implement, and setting up a full-screen div with spin.js is not, is to tell the applet to call a JavaScript function which hides the loading div when the init() function of the java applet runs.

Calling a JavaScript function from Java is pretty simple:

import java.net.*;

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

This will call the appletReady() function of your page, whether it's linked from another JS file or scripted directly in the HTML, as soon as the Applet itself runs. So instead of polling your applet indefinitely, you just run the function when its ready.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文