アプレットのJavascriptメソッドへのアクセス方法
「JSObject」オブジェクトはアプレットがJavascriptメソッドにアクセスするために使用しています。
JSObject win = JSObject.getWindow(this); win.call("callHello", new String[]{"mkyong"});
チュートリアル
このチュートリアルでは、アプレットの “JSObject”を使用してJavascript関数を実行します。
1. JSObjectライブラリを見つける
”
netscape.javascript.JSObject
“は、デフォルトではクラスパスにありません。JREのlibフォルダ内にあります。たとえば、次のようになります。
C:\Program Files\Java\jdk1.6.0__13\jre\lib\plugin.jar
“plugin.jar”は必要なもので、取得してプロジェクトのクラスパスに組み込みます。
2.アプレットを作成する
アプレットを作成し、JSObjectを使用してJavascript関数を呼び出し、String変数 “mkyong”を渡します。
package com.mkyong.applet; import java.applet.Applet; import java.awt.Button; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import netscape.javascript.JSObject; public class JavaToJavaScript extends Applet implements ActionListener{ Button button; private static final String EXECUTE = "EXECUTE"; public void init(){ setLayout(new FlowLayout()); button = new Button(); button.addActionListener(this); button.setActionCommand(EXECUTE); button.setLabel("Execute Javascript"); add(button); } @Override public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals(EXECUTE)){ JSObject win = JSObject.getWindow(this); win.call("callHello", new String[]{"mkyong"}); } } }
3. HTML – MAYSCRIPTを有効にする
セキュリティ上の問題があるため、JSObjectはデフォルトでは有効になっていません。アプレットタグ内に「
MAYSCRIPT
」を含めて有効にする必要があります。
function callHello(name) { alert("hello " + name); } Testing Applet acess Javascript method
4.出力
アプレットのボタンをクリックすると、JSObjectを使用してJavascript関数
callHello()
を呼び出し、文字列パラメータ “mkyong”を渡します。
P.S
Javascriptアクセスアプレットの方法
の記事をお読みください。
リファレンス
リンク://タグ/アプレット/[アプレット]リンク://タグ/javascript/[javascript]