JavaFX を使用して JavaScript から Java Function をコールバックとして呼び出そうとしています。まず、初期化中にウィンドウのメンバーとして Java クラスを追加しました。
JSObject jsobj = (JSObject) currentWebEngine.executeScript("window");
jsobj.setMember("java", this);
Java リクエスト関数は、 内に次のように記述されていますPlatform.runLater()
。
String script = "document.makeRequest('"+inputString+"')";
currentWebEngine.executeScript(script);
JavaScript 側で非同期要求が行われた後、Java 関数を呼び出して結果を返す必要があります。ただし、その側で例外が発生しています。引数なしで関数を呼び出してみましたが、まだ機能しません:
window.java.returnResult();
しかし、次の例外が発生します。
実行可能な netscape.javascript.JSException の例外: TypeError: 'undefined' はオブジェクトではありません
makeRequest() 関数で直接呼び出しようとしても同じエラーが発生したため、非同期要求とは関係ありません。その分野で私が何を間違えたのか分かりますか?前のコードは、アプレットではなく、デスクトップ JFrame アプリケーションに統合されています。