jQuery e Java applet
-
09-06-2019 - |
Domanda
Sto lavorando su un progetto in cui si utilizza un applet Java per la parte di interfaccia utente (una mappa, nello specifico), ma il resto dell'interfaccia utente circa l'applet HTML/JavaScript, in comunicazione con l'applet attraverso LiveConnect/NPAPI.Un po ' strano, lo so, ma supponiamo che il programma di installazione non è in discussione.Ho iniziato la pianificazione sull'utilizzo di jQuery, come il mio framework JavaScript, ma ho incontrato due problemi.
Problema di prima:
Selezionando le applet non fornire l'accesso per l'applet metodi.
Java:
public class MyApplet extends JApplet {
// ...
public String foo() { return "foo!"; }
}
JavaScript:
var applet = $("#applet-id");
alert(applet.foo());
Eseguire il JavaScript risultati
$("#applet-id").foo is not a function
Questo è in contrasto Prototipo, dove l'analogo codice funziona:
var applet = $("applet-id");
alert(applet.foo());
Ma...dove sarebbe l'applet metodi di andare?
Il problema secondo:
C'è un problema noto con jQuery e applet in Firefox 2: http://www.pengoworks.com/workshop/jquery/bug_applet/jquery_applet_bug.htm
Si tratta di un lungo tiro, ma qualcuno sa di una soluzione?Ho il sospetto che questo problema non è risolvibile, significa che la commutazione di Prototipo.
Grazie per l'aiuto!
Soluzione
Per il primo problema, che ne dite di provare
alert( $("#applet-id")[0].foo() );
Per il secondo problema qui è un thread con una possibile soluzione.
Citando la soluzione
// Prevent memory leaks in IE // And prevent errors on refresh with events like mouseover in other browsers // Window isn't included so as not to unbind existing unload events jQuery(window).bind("unload", function() { jQuery("*").add(document).unbind(); });
modificare questo codice:
// Window isn't included so as not to unbind existing unload events jQuery(window).bind("unload", function() { jQuery("*:not('applet, object')").add(document).unbind(); });