「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”を渡します。


applet-access-javascript、title = "applet-access-javascript"


P.S

Javascriptアクセスアプレットの方法

の記事をお読みください。

リファレンス

リンク://タグ/アプレット/[アプレット]リンク://タグ/javascript/[javascript]