關於JSObjcet對象

来源:互联网 发布:单片机交流信号源 编辑:程序博客网 时间:2024/06/10 21:59
 

Java 至 JavaScript 通信

 

如果需要在 Java 中使用 JavaScript 物件,必須在 Java 檔中引入 netscape.javascript 包,其定義如下:

 

1.         netscape.javascript.JSObject 允許 Java 程式碼訪問 JavaScript 方法和屬性;

2.         netscape.javascript.JSException 允許 Java 程式碼處理 JavaScript 異常;

3.         netscape.plugin.Plugin 允許用戶端 JavaScript 和 applets 操作一個插件(plug-in)。

 

  從 JavaScript 1.2 開始,這些類被遞交到一個尾碼為 .jar 的檔,而這以前的 JavaScript 版本,這些類被遞交到一個尾碼為 .zip 的文件。為了瀏覽 LiveConnect 類別,有兩種方法將 .jar 或 .zip 文件置於 JDK 編譯器的 CLASSPATH 中:

 

1.         建立一個 CLASSPATH 環境變數以指定這些檔的路徑和名稱;

2.         當用 -classpath 命令行參數編譯時指定這些檔的位置。

 

用 JSObject 訪問 JavaScript

  假設有一個名為 JavaDog 的 Java 類別,JavaDog 構造函數設置了 JavaScript 物件 jsDog,它被定義為 JSObject 類型,其程式碼如下:

 

import netscape.javascript.*;

public class JavaDog{

 public String dogBreed;

 public String dogColor;

 public String dogSex;

 // define the class constructor

 public JavaDog(JSObject jsDog) {

  // use try...catch to handle JSExceptions here

  this.dogBreed = (String)jsDog.getMember("breed");

  this.dogColor = (String)jsDog.getMember("color");

  this.dogSex = (String)jsDog.getMember("sex");

  }

}

 

  現在來看看如何用 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);

 }

}