Passando la funzione JS all'applet come listener di eventi
-
02-07-2019 - |
Domanda
È possibile passare una funzione / callback da javascript a un'applet java?
Ad esempio ho un'applet con un pulsante che quando viene premuto chiamerà il callback js passato
function onCommand() {
alert('Button pressed from applet');
}
applet.onCommand(onCommand);
Soluzione
Tendo a usare qualcosa che ho tratto dall'esempio di riflessione in fondo a questa pagina , poiché in quel momento non è necessario immischiarsi nel tuo percorso di classe per farlo compilare
Quindi passo semplicemente stringhe JSON tra l'applet e javascript
Altri suggerimenti
Puoi utilizzare JSObject per richiamare in javascript da Java.
Da quella pagina:
import netscape.javascript.*;
import java.applet.*;
import java.awt.*;
class MyApplet extends Applet {
public void init() {
JSObject win = JSObject.getWindow(this);
JSObject doc = (JSObject) win.getMember("document");
JSObject loc = (JSObject) doc.getMember("location");
String s = (String) loc.getMember("href"); // document.location.href
win.call("f", null); // Call f() in HTML page
}
}
ps. per utilizzare JSObject potrebbe essere necessario includere " MAYSCRIPT " tag al tag html dell'applet.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow