1

Javaクラスを使用してJavaScriptでイベントをトリガーしようとしています。

Javaクラスのjavascriptコード(直接入力またはファイルから)を、ブラウザー(Firefox)で既に開かれている指定された宛先ファイルに送信するにはどうすればよいですか?

現在、ScriptEngineManagerを使用してJavaScriptコードを実行していますが、コードはJava環境で実行されており、この方法でイベントをトリガーする方法がわかりません(たとえば、window.postMessage( "hi"、 "*");)

これを解決する方法について何か提案はありますか?回避策もありがたいです(できれば拡張機能、プラグインなどなしで)。

よろしくお願いします。

4

1 に答える 1

1

Javaから実行する場合、ブラウザがないため、ウィンドウイベントにアクセスできません。

ここでの使用例はよくわかりませんが、宛先ファイルをiframeに読み込んでから、メタリフレッシュを実行できます。ファイルの内容を更新すると、更新された結果が次のrefeshに表示されます。

いずれの場合も、入力されたjavascript関数からの結果のみをjavaに戻すことができ、イベントを呼び出すことはできません。

javascript関数(イベントをシミュレートする呼び出し)をブラウザーに戻し、それを実行することができます。

これをクライアントに返す方法は、状況によって異なります。

  • JavaScriptをアップロードするリクエストの応答にある可能性があります
  • メタリフレッシュメカニズムを使用できます
  • クライアントポーリングを使用してajaxスタイルの方法を調べることができます(毎回手動で更新したくない場合)。

編集

サーバーには、リクエスト間でブラウザへのリンクがありません。ブラウザでサーバーイベントを非同期に受信するには、次の内容を確認できます。

そのため、タスクが完了するとブラウザは通知を受け取り、それに反応することができます。たとえば、タブを閉じるように求めるプロンプトが表示されます。

于 2012-07-29T15:10:59.160 に答える