applet与js交互

出处: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的)
如页面:


<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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值