出处:http://www.cnblogs.com/crazyhack/archive/2010/09/09/1822728.html
1.js访问applet:
<applet name="appletName" ....../>
//JavaScript访问Applet属性
js访问applet属性:document.appletName.appletField (属性必须是public的)
js访问Applet方法:document.appletName.appletMethod (方法必须是public的)
如页面:
untitled2.Applet1类:
2.applet访问js:
java类中:
注意:
必须在<applet/>标记中加入MAYSCRIPT才能够调用JSObject对象,不然会抛出JSException异常
netscape.javascript.JSObject 这个类所对应的在包在 Java\jdk1.6.0_05\jre\lib\plugin.jar,由于这个jar有1MB多,使用的话,客户端会将整个包下载到客户端,这样就话,第一次打开网页就会很慢,因,如果只是简单的用netscape.javascript.JSObject类的话,可以将其所需要的class提取出来,减轻容量。
当js调用applet的方法读取本地文件信息的时候,请注意,如果要返回值的话,本人这边还真没有方法,因为这里要关系到安全问题,如果不要返回值的话,如果参考http://layicr.blog.sohu.com/141676490.html
1.js访问applet:
<applet name="appletName" ....../>
//JavaScript访问Applet属性
js访问applet属性:document.appletName.appletField (属性必须是public的)
js访问Applet方法:document.appletName.appletMethod (方法必须是public的)
如页面:
<script>
function showLable{
document.applets["TestApplet"].showLable('dd()');
}
</script>
<applet
codebase = "."
code = "untitled2.Applet1.class"
name = "TestApplet"
width = "400"
height = "300"
hspace = "0"
vspace = "0"
align = "middle"
MAYSCRIPT
>
</applet>
<a href="#" onclick="showLable()">showLable</a>
untitled2.Applet1类:
public void showLable(String str)
{
this.jLabel1.setText(str);
}
2.applet访问js:
java类中:
import netscape.javascript.JSObject;//引用
import netscape.javascript.JSException; //可允许在小程序中处理异常事件
//所对应方法
JSObject window=JSObject.getWindow(this); // 获取JavaScript窗口句柄,引用当前文档窗口
JSObject doc=(JSObject)window.getMember("document"); // 访问JavaScript document对象
JSObject form=(JSObject)doc.getMember("textForm"); //访问JavaScript form对象
JSObject textField=(JSObject)form.getMember("textField");访问JavaScript text对象
String text=(String) textField.getMember("value"); //获取文本区的值
// 调用JavaScript的alert()方法
window.eval("alert(\"This alert comes from Java!\")");
// 调用JavaScript的myFunction(message)方法
window.call("myFunction", new Object[]{"Hello"});//参数用数组的形势表示。
注意:
必须在<applet/>标记中加入MAYSCRIPT才能够调用JSObject对象,不然会抛出JSException异常
netscape.javascript.JSObject 这个类所对应的在包在 Java\jdk1.6.0_05\jre\lib\plugin.jar,由于这个jar有1MB多,使用的话,客户端会将整个包下载到客户端,这样就话,第一次打开网页就会很慢,因,如果只是简单的用netscape.javascript.JSObject类的话,可以将其所需要的class提取出来,减轻容量。
当js调用applet的方法读取本地文件信息的时候,请注意,如果要返回值的话,本人这边还真没有方法,因为这里要关系到安全问题,如果不要返回值的话,如果参考http://layicr.blog.sohu.com/141676490.html