2008-09-24 3 views
4

Возможно ли передать функцию/обратный вызов из javascript в java-апплет?Передача функции JS в апплет для прослушивателя событий

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

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

ответ

4

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

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

3

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

также возможно передать функцию js, которая является объектом в качестве первого аргумента win.call вместо имени функции js? – ken 2008-09-24 11:46:20

+0

Нет, но вместо того, чтобы проходить в голой функции обратного вызова, вы можете создать новый объект, содержащий его, передать это, а затем использовать форму object.call (name). – moonshadow 2008-09-24 12:00:54

3

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

 Смежные вопросы

  • Нет связанных вопросов^_^