是否可以將函數/回調從JavaScript傳遞給java小程序?將JS函數傳遞給作爲事件監聽器的小程序
,比如我有一個小程序,具有按鈕按下時,它會調用傳遞JS回調
function onCommand() {
alert('Button pressed from applet');
}
applet.onCommand(onCommand);
是否可以將函數/回調從JavaScript傳遞給java小程序?將JS函數傳遞給作爲事件監聽器的小程序
,比如我有一個小程序,具有按鈕按下時,它會調用傳遞JS回調
function onCommand() {
alert('Button pressed from applet');
}
applet.onCommand(onCommand);
我傾向於使用我的東西從反射例如衍生在this page底部,與以往一樣,你不需要用你的classpath染指得到它來編譯
然後我只是通過小應用程序和javascript之間的JSON字符串
您可以使用JSObject從Java回調成JavaScript。
在這個頁面:
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」標記包含到applet html標記中。
是否有可能傳遞作爲win.call的第一個參數的js函數而不是js函數的名稱? – ken 2008-09-24 11:46:20
不,但不是傳入裸回調函數,而是創建一個包含它的新對象,然後使用object.call(name)形式傳遞它。 – moonshadow 2008-09-24 12:00:54