Java アプレットがホストされているページの Javascript コードと通信するのに問題があります。時々動作しますが、解決されなかったいくつかの Java バグレポートを除いて、ググっても有用な情報が得られないというあいまいな例外をスローする場合もあります (Sun に感謝します)。
私が使用しているコードは次のとおりです。
JSObject win = JSObject.getWindow(this);
Object[] args = new Object[1];
args[0] = "test argument";
String result = (String) win.call("testJSfunc", args); // XXX
これは、// XXX とマークされた行で発生する例外です。断続的であることに注意してください。多くの場合は機能しますが、まったく同じコードを使用しても機能しない場合があります。ページを繰り返しリロードすると、すぐにエラーが発生します。
netscape.javascript.JSException: No registered plugin for applet ID 1
at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.call(Unknown Source)
at TestApplet.testCallJS(TestApplet.java:159)
at TestApplet.init(TestApplet.java:139)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
私が使用すべきJavaとJavascriptの間で通信するための別のより安定した方法はありますか?
- - より詳しい情報 - -
Sun が提供する deployJava.js スクリプトを使用して、その場でアプレットを埋め込みます。MAYSCRIPT が有効になっていることを確認しました。MAYSCRIPT の問題ではないことはわかっています。通信が機能する場合があるからです。