To nie działa w Safari:Jak czekać na zakończenie apletu Java w Safari?
<html>
<body>
<applet id="MyApplet" code="MyAppletClass" archive="MyApplet.jar">
<script type="text/javascript">
alert(document.getElementById('MyApplet').myMethod);
</script>
</body>
</html>
myMethod
jest metoda publicznego zadeklarowane w MyAppletClass
.
Kiedy po raz pierwszy ładuję stronę w Safari, pokazuje ona alert przed zakończeniem ładowania apletu (tak, że w oknie komunikatu wyświetla się undefined
). Jeśli odświeżę stronę, aplet został już załadowany, a alert wyświetli function myMethod() { [native code] }
, jak można się spodziewać.
Oczywiście oznacza to, że metody Aplet nie są dostępne dopiero po załadowaniu, ale Safari nie blokuje uruchamianie JavaScript. Ten sam problem występuje z <body onLoad>
.
Co potrzebne jest coś <body onAppletLoad="doSomething()">
. Jak obejść ten problem?
Dzięki
PS: Nie jestem pewien, czy to istotne, ale JAR jest podpisane.
Dziękuję. Szkoda, że nie ma na to czystszego sposobu! –
Możesz także po prostu sprawdzić aplet. Przynajmniej możesz w Firefoksie. Nie sprawdzałem w Chrome i IE. W ten sposób nie trzeba modyfikować apletu, aby mieć określoną metodę. –