Frage

Ich arbeite an einem Projekt, wo wir über ein Java-applet für einen Teil der Benutzeroberfläche (eine Karte, um genau zu sein), aber das erstellen der restlichen UI um das applet in HTML/JavaScript, die Kommunikation mit dem applet über LiveConnect/NPAPI.Ein wenig Bizarr, ich weiß, aber lassen Sie uns annehmen, dass setup nicht zur Diskussion.Ich begann die Planung auf die Verwendung von jQuery als JavaScript-framework, aber ich habe laufen in zwei Fragen.

Ausgabe die erste:

Wählen Sie das applet nicht den Zugriff auf das applet-Methoden.

Java:

public class MyApplet extends JApplet {
  // ...
  public String foo() { return "foo!"; }
}

JavaScript:

var applet = $("#applet-id");
alert(applet.foo());

Das obige JavaScript Ergebnisse in

$("#applet-id").foo is not a function

Dieser ist im Gegensatz zum Vorbild, in denen der analoge code funktioniert:

var applet = $("applet-id");
alert(applet.foo());

Also...wo würde das applet-Methoden gehen?

Geben Sie das zweite:

Es gibt ein bekanntes problem mit jQuery und applets in Firefox 2: http://www.pengoworks.com/workshop/jquery/bug_applet/jquery_applet_bug.htm

Es ist ein langer Schuss, aber weiß jemand einen workaround?Ich vermute, dieses problem ist nicht reparierbar, was bedeutet, dass schalten zum Prototyp.

Danke für die Hilfe!

War es hilfreich?

Lösung

Für die erste Ausgabe, wie zu versuchen,

alert( $("#applet-id")[0].foo() );

Für das zweite Problem hier ist ein fädeln mit einem mögliche Abhilfe.

Zitiert die Abhilfe

// 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();
});

diesen Code ändern:

// Window isn't included so as not to unbind existing unload events
jQuery(window).bind("unload",
function() {
        jQuery("*:not('applet, object')").add(document).unbind();
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top