这可以用 JSObject 来完成,基本上你在 Javascript 和 Java 之间传递信息。
基于documentation 的示例
.
假设这是您的 Java Applet,netscape.javascript.* 库用于调用浏览器的 Plugin 容器(运行 Java Applet 的窗口)以将信息传入或传出。这是文档中的示例,您可以将版本更改为您喜欢的 JDK 版本到您使用的任何版本。
import netscape.javascript.*;
import java.applet.*;
import java.awt.*;
class MyApplet extends Applet {
public void init() {
// requesting the JSObject
JSObject win = JSObject.getWindow(this);
// here you call a javascript function
win.call("myJavscriptFunction", null);
// if you wish to pass an argument to the javascript function,
// do the following
String myString = "World!";
final Object[] args = { myString };
win.call("myJavascriptFunction2()", args);
}
}
我将使用 EMBED 标签作为示例,但也可以使用 OBJECT(IE 等)标签(请参阅顶部链接中的文档)。你不应该忘记的最重要的属性是启用MAYSCRIPT=true
<EMBED type="application/x-java-applet;version=1.3" width="200"
height="200" align="baseline" code="XYZApp.class"
codebase="html/" model="models/HyaluronicAcid.xyz" MAYSCRIPT=true
pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html">
<NOEMBED>
No JDK 1.3 support for APPLET!!
</NOEMBED>
</EMBED>
现在 HTML/PHP 文件中的 javascript 函数
<script text="text/javascript">
function myJavascriptFunction() {
alert("Hello!");
}
/**
* with argument
*/
function myJavascriptFunction2(myString) {
alert("Hello "+myString);
// will produce "Hello World!";
}
</script>
参考:java.sun.com/products/plugin/1.3/docs/jsobject