Webページのファイルを開くダイアログをポップアップし、ユーザーにファイルを選択させる必要があります(アップロード用ではありません)。完全なファイルパスにアクセスする必要があるため、フォーム/入力は使用できません。したがって、私は署名されたJavaアプレットを使用します。Safariが(アイドル)JFileChooserを起動したJavaアプレットを終了します
私のテストケースでは、Javaアプレットのメソッドがjavascript関数から呼び出されます。アプレットメソッドは、ファイルを開くダイアログ(JFileChooser)を開きます。約アイドル状態のままにしておくとSafari(*)によってアプレットが殺されてしまいました。私のテストでChromeがうまくいけば、「応答しない」アラートがポップアップしますが、Firefoxは明らかに気にしません。
IIUC、これはSafari固有です私はJFileChooserのスレッディングを見ていましたが、そのパスはもっと複雑に思えますし、Javascriptだけですべての作業を行うことはできませんでした。しかし、これは非常に不便です。既知のセキュリティ上の理由から。あなたがこれまできれいな解決策を持っていますか?
(*)JVMがInterruptedExceptionあるに終わる
はコールバックでそれを実装することができない:Javaで一方
をモーダルダイアログ "?これは、モーダルのような(例えば、常時オンの)ダイアログでもあります。 JavaScriptがメインイベントポンプに戻るようにする必要があります。 –
詳細を教えてください。 –
* "私のテストケースでは、JavaアプレットメソッドがJavaScript関数から呼び出されています" *おそらくブラウザーはJSが完了するのに時間がかかりすぎることに気づいているので、それが原因です。その場合、解決策は、アプレットがスクリプトを完了した後に呼び出すことです。そうすれば、スクリプトは 'ブラウザをブロックする'のままになることはありません。 –