小组Java

先说Javascript呼叫Java Applet的情况: 很简单,把Applet中要被呼叫的类成员(类变量、类方法)设为”公开”(public),然后,在Javascript中用以下方式呼叫:

document.<Applet name>.类方法

注意,<applet>标签应当设定name属性,以供Javascript使用。

 

再看Java Applet调用Javascript的情况,大致来说,分两种:

  1. 呼叫Javascript函数;
  2. 读/写网页DOM元素;

首先,<applet>标签要设定MAYSCRIPT属性,表明该Applet具有访问网页的权限;其次,Java Applet要引入 JSObject类(import netscape.javascript.JSObject),代码形式如下:

JSObject Win = JSObject.getWindow(this); // 取得Applet所在网页(Window)

JSObject Doc = (JSObject)Win.getMember(“document”);

JSObject T = (JSObject)Doc.getMember( name of DOM element ); // 取得DOM元素

T.setMember( Attribute, Value); // 向该DOM元素写入某值

 

(不知道什么原因,我在Firefox上不能按上述形式获得DOM元素)

如果把对DOM的操作放到Javascript里面做,那么Applet就简单了,即,直接呼叫Javascript里的相关函数:

JSObject Win = JSObject.getWindow(this); // 取得Applet所在网页(Window)

Win.Call( Javascript函数, 参数);

 

个人认为,网页本身就是一个容易编写、维护、效果出色的用户界面,而Applet则应专注于运算功能,就是说,可以把界面模块放在网页内实现,而运算模块则放在Applet里做,这样,各司其职,在Applet中使用 Win.Call() 方式来把运算结果返回给网页的Javascript,由Javascript来处理、放置运算结果。

1 1 收藏


直接登录