JSObject?共通 DOM API?
くだんのこのアプレットからDOM操作を行うための方法を記したページによると、
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/plugin/developer_guide/java_js.html
アプレットからDOM操作を行うためには「JSObject」かDOMServiceを初めとする「共通 DOM API」を利用するらしい。
さしあたってAjadの可能性を検証するにあたってどっちを使うべきか。
なんとなく、パッケージにおもいっきり「netscape」とか書いてあるJSObjectより、「org.w3c.dom」とかなってる共通 DOM APIの方が将来性豊っぽい。JDKにもデフォで入ってるし。
うえに、我がMacのJREを探してみるに、なんかJSObjectが入ってそうなjarが見つからない。
ので、とりあえず共通 DOM APIを試してみることにした。
が
どう頑張ってもDOMService.getService()を実行しようとするとDOMUnsupportedExceptionがスローされる。どうもRuntimePermissionが絡んでいるらしく、色々と調べてみるにポリシーファイルを書かねばならんっぽい。
それは微妙だ
アプレットの実行環境毎にポリシーファイルを設定して回らねばならないなど、微妙極まりない。こうなっては仕方が無い。意地でもJSObjectを試してみる他に道は無さそうなので、もう一度くまなく怪しそうなjarファイルを探してみることにした。
ら
よくよく見るとこんなところにこんなものを発見した。
/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/lib/jaws.jar
「/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/」の方にはjaws.jarは無いのが非常に気にかかるのだが、この際仕方が無ので、このjarをeclipseのアプレット用のプロジェクトにインポートしてビルドパスに加えてみた。
ら
なんだかJSObjectはJSObjectでもsunのJSObjectしか含まれておらず、netscape.javascript.JSObjectは見つからなかった。仕方が無いのでもう一度よく調べてみると、
/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/lib/netscape.jar
なんていうあからさまにアヤシイjarが・・・さっそくeclipseにインポートしてビルドパスを通してみると・・・
おぉぉぉぉぉぉぉっ!
ついに念願のnetscape.javascript.JSObjectをMacでも発見しました!!
そんな訳で次回は、この「netscape.jarに含まれるnetscape.javascript.JSObject」を利用して、クライアント内でのシンプルなDOM操作に挑戦してみたいと思います。