2010-09-17 10 views
6

Wie kann ich erkennen, ob ein Java-Applet erfolgreich geladen wurde, ohne den Browser abzufragen/setTimout zu verwenden?Erkennen, wenn ein Applet geladen ist

Gibt es ein Ereignis, an das ich binden kann?

Das Problem ist: Es ist ein Pop-up fragt den Benutzer, ob er das Applet vertraut oder nicht, und das dauert einige Sekunden, bis der Benutzer klickt auf „Ja“ inzwischen mein Code nicht ausgeführt werden, da das Applet hat nicht geladen

Antwort

3

Sie meinen von Javascript? Sie können das Applet fragen. Haben Sie einen booleschen Wert in init() auf true gesetzt und geben Sie diesen in einer Methode zurück, die Sie aufrufen ... oh, Sie haben geschrieben, ohne setTimeout zu verwenden. Nun, in diesem Fall, denke ich, musst du umgekehrt gehen und dein Applet eine JavaScript-Methode aufrufen lassen (zum Beispiel mit JSObject.getWindow (this);) ... Aber ich denke, das ist schwieriger/fehleranfällig als einen Timer zu verwenden, bis das Applet geladen ist.

+0

Ich endete mit dem Timer zu sagen, wenn das Applet geladen wurde, ist es einfacher als die andere Option – portoalet

0

Ich weiß, diese Frage ist ziemlich alt, aber meine bevorzugte Art und Weise, dies zu tun, weil Java Loading Screens ziemlich hart zu implementieren ist, und die Einrichtung ein Vollbild-div mit spin.js nicht, so ist das Applet zu sagen um eine JavaScript-Funktion aufzurufen, die das Lade-Div versteckt, wenn die Funktion init() des Java-Applets ausgeführt wird.

eine JavaScript-Funktion von Java Aufruf ist ziemlich einfach:

import java.net.*; 

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

Dies wird die appletReady() Funktion Ihrer Seite aufrufen, ob es von einem anderen JS-Datei oder Skript direkt in den HTML-verknüpft ist, so schnell wie Das Applet selbst läuft. Anstatt also Ihr Applet auf unbestimmte Zeit abzufragen, führen Sie einfach die Funktion aus, wenn sie fertig ist.

Verwandte Themen