grant {
permission java.security.AllPermission;
};
import java.applet.Applet;
import java.lang.reflect.Method;
public class Callback extends Applet
{
public void testCallback(Object callback)
{
try
{
Class clazz = callback.getClass();
Method call = clazz.getMethod("call", new Class[] {String.class, Object[].class});
call.invoke(callback, new Object[]{ "callA" , null});
call.invoke(callback, new Object[]{ "callB" , null});
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
<html>
<head>
<script language="javascript" type="text/javascript">
<!--
function Delegate() {}
Delegate.prototype.callA = function() {
alert("callA()");
}
Delegate.prototype.callB = function() {
alert("callA()");
}
function testCallback() {
document.applets[0].testCallback(new Delegate());
}
//-->
</script>
</head>
<body onLoad="Javascript:testCallback();">
<applet codebase="./" code="Callback" width="0" height="0" mayscript></applet>
</body>
</html>