Hallo Flynn!
Bei Java gibt es eine Schnittstelle, mit der man ermitteln kann, welche Methoden eine Klasse hat. Diese Schnittstelle kann man auch von JavaScript aus nutzen.
Hier ein Beispiel, das alle Methoden eines Applets ausgibt:
<html>
<head>
<title>Chat</title>
<script>
function list() {
var applet = document.getElementById("app");
var text = "<p style='white-space:pre'>";
text += applet.getAppletInfo();
var info = applet.getParameterInfo();
text += "</p><table><tr><th>Name</th><th>Typ</th><th>Beschreibung</th></tr>";
for(var a = 0; a < info.length; a++) {
text += "<tr><td>" + info[a][0] + "</td><td>" + info[a][1] + "</td><td>" + info[a][2] + "</td></tr>";
}
text +="</table><p>";
var methods = applet.getClass().getMethods();
for(var a = 0; a < methods.length; a++) {
if(methods[a].getDeclaringClass() == applet.getClass() && java.lang.reflect.Modifier.isPublic(methods[a].getModifiers())) {
text += methods[a].getReturnType().getName() + " <b>" + methods[a].getName() + "(</b>";
var params = methods[a].getParameterTypes();
for(var b = 0; b < params.length; b++) {
if(b != 0) {
text += ", ";
}
text += params[b].getName();
}
text += "<b>)</b><br>";
}
}
text+="</p>";
document.getElementById("out").innerHTML = text;
}
</script>
</head>
<body bgcolor=#FFEEDD text=#000000 link=#AA5522 vlink=#772200 alink=#000000>
<div align="center">
<applet [...] id="app" mayscript="mayscript">
</applet>
</div>
<div>
<a href="#" onclick="list(); return false;">list</a>
</div>
<div id="out">
</div>
</body>
</html>
Das Script Funktioniert nur im Mozilla/Netscape 6+ und gibt auch noch einige weitere Informationen aus.
Grüße
Daniel