今、Java AppletとJava Scriptを併用するアプリケーションを作っている。で、いくつかわかったことなんかを書いてみようと思う。
まず困ったのが、Navigator3.01JではJavaApplet上のTextFieldに日本語入力が出来ないみたいなこと。ATOK10を使っているのだが、IMEの力が及ばないらしくて入力したローマ字がそのまま出てしまう。しかも、別のところで入力してペーストすれば問題ないところが笑えるというかなんというか。日本語表示は今のところ問題ないようなのに。
ちなみにこれはWin32での話で、Mac版では問題なく入力できるようだ。
MacのExplorer3.01は日本語版・英語版ともにAppletで日本語表示が出来ないようだ。
あと、フォームでボタンを作ったとき、名前を付けないと他のブラウザでは無地のボタンになるのに、Mac版Explorerでは「Clear」とか何とかって勝手に付いてた。しかもScriptでうまく扱えていないように見える。あまり確かめてないのだが。
Win32のNavigator3.01Jで、フォームのテキスト入力を1つしか作らないと、そこで入力してリターンを押しただけで勝手にURLの後ろに?でパラメータを付けてサーバに送ろうとしてしまうようだ。同じフォームにテキスト入力をもう1つつければそれはなくなる。なぜこんな仕様になっているのだろうか。Scriptで使う以上そんなことをされては非常に困るのだが。
ScriptとAppletで文字列をやりとりした場合、Explorer3.01Jでは完全にUnicodeで受け渡しされる。しかしNavigatorではWinでもMacでも、ShiftJISで受け渡しされる。しかも、全角文字は上下バイトがそれぞれ別々になっている。この辺は仕様として決まっていないのだろうか。Appletで扱うことを考えればUnicodeが正しいように思える。それにShiftJiSで受け渡しされるのはたぶんWinやMacの環境だからではないだろうか?これを前提に作ってしまうとUNIXでは動かなくなるかもしれない。
ScriptからAppletのメソッドを呼び出した場合、NavigatorではAppletでネットワークを扱う機能を使用できないようだ。Explorerでは問題ない。
とりあえず、ネットワークを使う部分を別クラスにしたり、別アプレットにしてみたり、イベントを起こしてその中でやってみたりしたけどどうしてもだめだった。Scriptから呼び出されたことに起因しなければ大丈夫なのだが。なぜだめなようになっているんだろう。Appletなんだからセキュリティとかも特に問題ないように思えるし。これがもしScriptの仕様なんだとしたら、Explorerの次期バージョンでもそうなってしまう可能性がある。ScriptとAppletを併用することでお互いの苦手な部分を補えて便利なのに、これではAppletの最大の特徴を奪われてしまって非常に残念だ。ぜひ改善してもらいたい点だ。
結局Navigatorの欠点を並び立てるような感じになってしまった。Microsoftの肩を持つ気は毛頭ないが、少なくともJavaに関してはExplorer3.01の方が出来が良いのは明らかだ。処理速度も目に見えて速いし。Netscapeのが対応は速かったんだから、もう少しがんばって欲しいなぁと思う。 |