Questo non funziona in Safari:Come aspettare che l'applet Java finisca il caricamento su Safari?
<html>
<body>
<applet id="MyApplet" code="MyAppletClass" archive="MyApplet.jar">
<script type="text/javascript">
alert(document.getElementById('MyApplet').myMethod);
</script>
</body>
</html>
myMethod
è un metodo pubblica indicato nella MyAppletClass
.
Quando carico la pagina per la prima volta in Safari, viene visualizzato l'avviso prima che l'applet abbia completato il caricamento (quindi nella finestra di messaggio viene visualizzato undefined
). Se aggiorno la pagina, l'applet è già stata caricata e l'avviso visualizza function myMethod() { [native code] }
, come previsto.
Ovviamente, questo significa che i metodi dell'applet non sono disponibili finché non è stato caricato, ma Safari non sta bloccando l'esecuzione di JavaScript. Lo stesso problema si verifica con <body onLoad>
.
Quello che mi serve è qualcosa come <body onAppletLoad="doSomething()">
. Come posso risolvere questo problema?
Grazie
PS: io non sono sicuro se è rilevante, ma la JAR è firmato.
Grazie. È un peccato che non ci sia un modo più pulito per farlo! –
Puoi anche semplicemente controllare l'applet. Almeno, puoi farlo in Firefox. Non ho controllato in Chrome e IE. In questo modo, non è necessario modificare l'applet per avere un metodo particolare. –