JavaScriptでアプレットを呼び出す

こないだのアプレットからJavaScriptの関数を呼び出す - 今日覚えたことの逆。JavaScriptからアプレットを呼び出す。

簡単に言うと

ということ。

コード

まずhtmlが以下。

<object name="myapplet" codetype="application/java" 
    classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
    width="200" height="200">
    <param name="code" value="Applet" />
    <param name="archive" value="applet.jar" />
</object>

<button type="button" onclick="myapplet.hoge('hello');">ボタン</button>

アプレットJavaコードは以下。

public class Applet extends JApplet {
    public void hoge(String message){
        // 省略
    }
}

こんな感じ。objectタグに「name="myapplet"」と書いてあり、またアプレット内にpublicなhogeメソッドがあるので、

myapplet.hoge('hello');

で呼び出せる。

低い権限なので注意

ただ、こうして動き出したアプレットのコードは、非常に低い権限で動くので注意が必要。

例えばローカルディスクにアクセスしたいと思っても、それは無理。たとえjarに署名したとしても、JavaScriptから呼び出されたときだけは無理。そういう仕様になってる。