Передача функции JS апплету в качестве прослушивателя событий
-
02-07-2019 - |
Вопрос
Можно ли передать функцию / обратный вызов из javascript в java-апплет?
Например, у меня есть апплет с кнопкой, которая при нажатии вызывает переданный обратный вызов js
function onCommand() {
alert('Button pressed from applet');
}
applet.onCommand(onCommand);
Решение
Я обычно использую то, что я извлек из примера отражения в нижней части эта страница, так как тогда вам не нужно вмешиваться в ваш classpath, чтобы заставить его скомпилироваться
Затем я просто передаю строки JSON между апплетом и javascript
Другие советы
Вы можете использовать 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
}
}
ps.чтобы использовать JSObject, вам может потребоваться включить тег "MAYSCRIPT" в html-тег апплета.
Не связан с StackOverflow