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!

È stato utile?

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();
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top