[转]JavaScript创建Applet 标签的属性介绍 以及 Applet调用JavaScript
Html嵌入Applet
标签的属性介绍
属性 含义
Width Applet在Html页面上的宽度
Height Applet在Html页面上的高度
Name Applet在Html页面上的名称,用于区名一个Html页面上的多个Applet
Code Applet类名,必须带后缀”class”当没有属性archive时,直接写类名当有属性archive时,必须带包名
Codebase Applet的类相对路径,相对于Html页面位置
Archive Applet所在Jar包的文件名
标签< PARAM>的属性介绍
属性 含义
Name Applet传入的参数名
Value Applet传入的参数值
当Applet 为一个Class类文件嵌入的写法
属性Code ==========Applet类名,必须带后缀名
属性CodeBase ---------------Class类文件相对于Html页面的相对路径
Applet为一个JAR包,嵌入Html的写法
属性Code ==========Applet类名,包括包名
属性CodeBase ----------------Applet JAR包相对于Html页面的相对路径
属性Archive -----------------------Applet Jar包文件名
MAYSCRIPT属性的意义
即使applet使用JSObject调用JavaScript函数,或者直接访问文档对象模型,如果applet标签没有包含在MAYSCRIPT属性中的话JSObject的方法就会失败。这一点能使网页设计者测定一个applet是否能唤起JavaScript。
JSObject类
引用JSObject类成员函数的简短描述是为了更好的理解这个类的用途。
public static JSObject getWindow (Applet applet )
这个静态方法对含有给出的applet窗口返回一个JSObject。例如:JSObject MainWindow = JSObject.getWindow ( this );
public Object call ( String methodName, Object args[ ] )
这个函数从Java applet内部调用一个JavaScript方法。例如:
JSObject MainWindow = JSObject.getWindow ( this );
String Arguments[ ] = {"90", "2"}; // {"Percent complete", "Time remaining"}
MainWindow.call ( "UpdateProgressIndicator", Arguments );
public Object eval ( String s )
这个方法求一个JavaScript表达式的值。表达式是这个对象上下文中待求的JavaScript源代码的一个字符串。例如:
JSObject MainWindow = JSObject.getWindow ( this );
JSObject UserName = MainWin.eval ( "document.UserInfoForm.UserName" );public Object getMember ( String name )这个方法检索JavaScript对象的一个索引成员,等价于JavaScript对象的this.name。:
JSObject MainWindow = JSObject.getWindow ( this );
JSObject DocumentPage = (JSObject)MainWindow.getMember ( "document" );
JSObject UserInfoForm = (JSObject) DocumentPage.getMember ( "UserInfoForm" );
JSObject UserName = (JSObject) UserInfoForm.getMember ( "UserName" );public Object getSlot ( int index)这个方法检索JavaScript对象的一个索引成员,等价于JavaScript对象的this [index]。例如:
JSObject MainWindow = JSObject.getWindow ( this );
JSObject DocumentPage = (JSObject)MainWindow.getMember ( "document" );
JSObject Applets = (JSObject) DocumentPage.getMember ( "applets" );
Object theApplet = Applets.getSlot ( index );public void removeMember ( String name )这个方法删除一个JAVASCRIPT对象的指定成员。public void setMember ( String name, Object value )这个方法设置一个JAVASCRIPT对象的指定成员。它等价于JavaScript对象的this.name = value。例如:
JSObject MainWin = JSObject.getWindow ( this );
JSObject DocumentPage = (JSObject) MainWin.getMember ( "document" );
JSObject UserInfoForm = (JSObject) DocumentPage.getMember ( "UserInfoForm" );
JSObject UserName = (JSObject) UserInfoForm.getMember ( "UserName" );
UserName.setMember ( "value", "Jeremiah S. Talkar" );public void setSlot ( int index, Object value )这个方法设置一个JAVASCRIPT对象的索引成员。它等价于JavaScript对象的this[index] = value。
public String toString ()
这个方法将JSObject转换成一个字符串。
上面的例子是很清楚的。JSObject类的公共方法试图在JavaApplet中调用JavaScript函数时是不受限制的。他们也可以使一个applet直接处理文档对象模型元素。
这些类完整的文档可以在http://developer.netscape.com/docs/manuals/communicator/jsref/pkg.htm上得到。
文档也解释了怎样在Java和JavaScript间处理数据类型。
**********************************
JavaScript与Applet之间的通信