Передача функции JS апплету в качестве прослушивателя событий

StackOverflow https://stackoverflow.com/questions/126631

Вопрос

Можно ли передать функцию / обратный вызов из 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-тег апплета.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top