JAVA [ Javascript 和 Applet 交互 ]

###############Java 中使用 JavaScript 对象######################

必须引入 netscape.javascript ,其定义如下:  


netscape.javascript.JSObject 允许 Java 代码访问 JavaScript 方法和属性; 
netscape.javascript.JSException 允许 Java 代码处理 JavaScript 异常;  
netscape.plugin.Plugin 允许客户端 JavaScript 和 applets 操作一个插件(plug-in)。  
包在jre\lib\plugin.jar里
 
用 JSObject 访问 JavaScript 
  用 Java 来访问客户端 JavaScript,然而 HTML 页必须允许一个 Java applet 访问 JavaScript— 通过在 <APPLET> 标记中指定MAYSCRIPT 属性。当您在 Navigator 中访问 JavaScript 之前,您必须获得  
Navigator 窗口的句柄,您可以在 netscape.javascript.JSObject 类中使用的getWindow 方法来达到这个目的。例如,如果先前定义了一个 JSObject 类的变量win,下面的代码将窗口句柄赋予 win: 
 
public class myApplet extends Applet 
 public void init() 
 JSObject win JSObject.getWindow(this); 
 } 

 
在 Java 中处理 JavaScript 的异常 
  当从 Java 中调用的 JavaScript 代码发生了运行时的错误,它就会发出一个 
异常,这时您可以用 try...catch 语句来捕获该异常。例如: 
 
try 
 global.eval_r("foo.bar 999;"); 
catch (Exception e) 
 if (e instanceof JSException) 
  jsCodeFailed()"; 
 } else 
  otherCodeFailed();  
  } 


访问 JavaScript 的对象和属性 
  我们用 getMember 方法来访问 JavaScript 的对象和属性,例如下面的代码 
允许您通过变量 myForm 来访问 JavaScript 对象 document.testForm: 
 
public void init() 
 win JSObject.getWindow(this); 
 myForm=win.eval_r("document.testForm") 

 
您也可以用下面的语句来代替 myForm=win.eval_r("document.testForm"): 
 
JSObject doc (JSObject) win.getMember("document"); 
JSObject myForm (JSObject) doc.getMember("testForm"); 
 
如果 JavaScript 对象 document.testForm.jazz 是一个 checkbox,下面的语句 
允许您访问它的 checked 属性: 
 
public void init() 
 win JSObject.getWindow(this); 
 JSObject doc (JSObject) win.getMember("document"); 
 JSObject myForm (JSObject) doc.getMember("testForm"); 
 JSObject check (JSObject) myForm.getMember("jazz"); 
 Boolean isChecked (Boolean) check.getMember("checked"); 

 
访问 JavaScript 方法 
  在 netscape.javascript.JSObject 类中的方法可以让您求出任一  
JavaScript 表达式,先用 getWindow 来获得 JavaScript 窗口的句柄,然后再用 
 eval 来访问一个 JavaScript 方法,如下: 
 
JSObject.getWindow().eval_r("表达式")

###############JavaScript 中使用 Applet对象######################
<applet id = "" codebase = "." archive = "twaver.jar" code = "demo.MainFrame" width = "100%" height = "75%" align= "middle" MAYSCRIPT> 
</applet>
... 
<SCRIPT LANGUAGE="JavaScript"
<!--  
function openURL(name){ 
    
alert("hello");
 

//Javascript operates the function 'createServer' in Applet  

function createServer(name){     

document.applets[0].createServer('A B C');  

//--> 

</SCRIPT>

------------------------------------------------------ 

import netscape.javascript.*; 

...  

public class MainFrame extends JApplet {   

 ...    

//Applet operates the function 'openURL' in Javascript    

private void openURL(String name){      

JSObject window = JSObject.getWindow(this);     

String code = "openURL(\"" + name + "\");";     

window.eval_r(code);   

   

public void createServer(String name){      

Node server = new Node();      

server.setName(name);      

box.addElement(server);    

}

... 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值