【发布时间】:2012-03-09 13:41:04
【问题描述】:
我需要在网页中弹出一个文件打开对话框,并让用户选择一个文件(不用于上传!)。因为我需要访问完整的文件路径,所以我不能使用表单/输入。因此,我使用签名的 Java 小程序。
在我的测试用例中,Java 小程序方法是从 javascript 函数中调用的。 applet 方法打开一个文件打开对话框(JFileChooser)。如果闲置约。 30",小程序被 Safari(*) 杀死。在我的测试中,Chrome 更好,它会弹出“无响应”警报,而 Firefox 显然不在乎。
IIUC,这是 Safari 特有的行为,但非常不方便。我需要该对话框一直保持到用户做出选择为止。我查看了线程化 JFileChooser,但该路径似乎要复杂得多,并且出于已知的安全原因,仅在 Javascript 中完成所有工作是不可能的。你有一个干净的解决方案吗?
(*) JVM 以 InterruptedException 结束
【问题讨论】:
-
可以用回调而不是“模态对话框”来实现它吗?它仍然可以是类似模式的(例如,始终在顶部)对话框。需要让 JavaScript 返回到它的主事件泵...
-
能否请您详细说明一下,或者指出一些更详细的信息?
-
“在我的测试用例中,一个 Java 小程序方法是从一个 javascript 函数中调用的。” 也许浏览器注意到 JS 需要很长时间才能完成,这就是致命的原因它。如果是这种情况,解决方案可能是让小程序在完成后调用脚本。这样脚本就不会“阻塞浏览器”。
-
@AndrewThompson 感谢您的解释,这就是我的想法,但我不确定细节。
标签: java safari applet jfilechooser