Передача функции JS апплету для прослушивания событий - PullRequest
4 голосов
/ 24 сентября 2008

Можно ли передать функцию / обратный вызов из javascript в java-апплет?

Например, у меня есть апплет с кнопкой, которая при нажатии вызывает обратный вызов js

function onCommand() {
  alert('Button pressed from applet');
}
applet.onCommand(onCommand);

Ответы [ 3 ]

4 голосов
/ 24 сентября 2008

Я склонен использовать что-то, полученное из примера отражения внизу этой страницы , так как тогда вам не нужно вмешиваться в ваш путь к классам, чтобы заставить его скомпилировать

Затем я просто передаю строки JSON между апплетом и JavaScript

3 голосов
/ 24 сентября 2008

пс. для использования JSObject может потребоваться включить тег «MAYSCRIPT» в тег html апплета.

3 голосов
/ 24 сентября 2008

Вы можете использовать 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
     }
}
...