Определить, когда апплет загружен - PullRequest
6 голосов
/ 17 сентября 2010

Как определить, успешно ли загружен java-апплет, не опрашивая браузер / не используя setTimout?

Есть ли какое-либо событие, к которому я могу привязаться?

Проблема в том, что появляется всплывающее окно, спрашивающее пользователя, доверяет ли он апплету или нет, и это занимает несколько секунд, пока пользователь не нажмет «Да» Между тем, мой код не выполняется из-за того, что апплет не был загружен.

Ответы [ 2 ]

3 голосов
/ 17 сентября 2010

Вы имеете в виду из javascript?Вы можете спросить апплет.Установите в логической функции init () логическое значение true и верните его в метод, который вы вызываете ... о, вы написали "без использования setTimeout".Ну, в этом случае, я думаю, вы должны пойти другим путем, и ваш апплет должен вызвать метод javascript (например, с JSObject.getWindow (this);) ... Но я думаю, что это более сложно / подвержено ошибкамчем использовать таймер, пока апплет не будет загружен.

0 голосов
/ 03 июля 2013

Я знаю, что этот вопрос довольно старый, но мой предпочтительный способ сделать это, потому что Java загрузочные экраны довольно сложны для реализации, а настройка полноэкранного div с помощью spin.js нет, это сказать апплету:вызовите функцию JavaScript, которая скрывает загрузочный div при запуске функции init () Java-апплета.

Вызов функции JavaScript из Java довольно прост:

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, сразу после запуска самого апплета.Таким образом, вместо бесконечного опроса вашего апплета, вы просто запускаете функцию, когда она готова.

...