Можно ли передать функцию / обратный вызов из javascript в java-апплет?
Например, у меня есть апплет с кнопкой, которая при нажатии вызывает переданный обратный вызов js
function onCommand() {
alert('Button pressed from applet');
}
applet.onCommand(onCommand);




Вы можете использовать JSObject для обратного вызова javascript из Java.
С этой страницы:
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
}
}
Нет, но вместо передачи простой функции обратного вызова вы можете создать новый объект, содержащий его, передать его, а затем использовать форму object.call (name).
Я обычно использую то, что я заимствовал из примера отражения в нижней части эта страница, так как тогда вам не нужно вмешиваться в свой путь к классам, чтобы заставить его скомпилировать
Затем я просто передаю строки JSON между апплетом и javascript.
пс. для использования JSObject вам может потребоваться включить тег "MAYSCRIPT" в тег html апплета.
Можно ли также передать функцию js, которая является объектом, в качестве первого аргумента win.call вместо имени функции js?