applet与js交互

3 篇文章 0 订阅
3 篇文章 0 订阅
出处: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="#" οnclick="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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值