Dans les versions antérieures d'IE et de Firefox, je pouvais appeler methodFoo en JavaScript depuis mon applet Java fonctionnant sur la même page . Dans IE9, cela ne fonctionne plus. Existe-t-il une étape supplémentaire, ou une façon différente de faire cela qui fonctionnera pour IE9?Dans IE9 et IE9 Platform Preview, je ne peux plus appeler une méthode Javascript depuis mon applet Java
Mon Applet Java contient
import netscape.javascript.JSObject;
...
private transient JSObject jso;
...
public void init() {
...
jso = JSObject.getWindow(this);
... }
public void CalledFromSecondaryThread(){
...
jso.call("methodFoo", object_to_pass);
... }
Ma page Html contient
...
<object style="height: 1px;width: 650px;" classid = "clsid:CAFEEFAC-0016-0000-0011-ABCDEFFEDCBA" codebase = "http://java.sun.com/update/1.6.0/jinstall-6u11-windows-i586.cab#Version=6,0,0,11" id="AppletControl">
<param name="java_arguments" value="-Xmx256m" />
<param name = "CODE" value = "com.namespace.Applet.class" />
<param name = "archive" value = "./lib/applet.jar" />
<param name = "type" value = "application/x-java-applet;version=1.6" />
<param name = "scriptable" value="true" />
<param name = "mayscript" value="true" />
</object>
...
<script type="text/JavaScript" src="js/script.js"></script>
...
et script.js contient
function methodFoo(object_to_pass){
//doStuff
}
L'exception reçue de jso.call est
netscape.javascript.JSException: No such method "methodFoo" on JavaScript object
J'ai trouvé que cela fonctionne aussi en mode « Quirks » de IE9, permettant ainsi le mode Quirks pour la la page est une solution de contournement raisonnable pour certains. – RCGoforth
Si vous avez (ou créez) un identifiant pour le portail de commentaires Microsoft, vous pouvez voir l'état du bogue ici: https://connect.microsoft.com/IE/feedback/details/620646/calls-to-javascript -method-from-a-java-applet-are-failing-avec-a-no-such-method-error – RCGoforth
Avez-vous essayé avec eval à la place? Comme 'jso.eval (" methodFoo() ")'. Quand j'utilise LiveConnect, je n'utilise pas 'call' car il est cassé dans FF Mac, Safari et Opera 9.8. Pour plus d'informations, consultez [informations sur liveconnect et le déploiement] (http://www.cabo.dk/blog/jakobs-blog/applets-missing-information-about-liveconnect-and-deployment). D'ailleurs, votre lien ne fonctionne pas. Est-ce que c'est réparé maintenant? –