JApplet 有没有办法检测浏览器关闭?
用户在关闭浏览器之前应保存某些配置文件。有没有办法检测用户是否试图关闭浏览器并警告他们首先保存文件?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
用户在关闭浏览器之前应保存某些配置文件。有没有办法检测用户是否试图关闭浏览器并警告他们首先保存文件?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
您应该在小程序中定义一个公共方法,并在用户关闭页面之前使用 Javascript 调用它:
window.onbeforeunload = document.YourApplet.YourMethod(event);
其中 YourApplet 是您的小程序的名称属性:
You should define a public method inside your applet and invoke it using Javascript before the user closes a page:
window.onbeforeunload = document.YourApplet.YourMethod(event);
where YourApplet is your applet's name attribute:
<applet name="YourApplet" ...
and YourMethod is the method you defined in your applet.
您可以使用 JavaScript 来检测这一点。您还可以从 javascript 调用 applet 方法。
因此,您应该定义一个 javascript
onunload
处理程序来调用您的 applet 的 close 方法。You can use javascript to detect this. And you can invoke applet methods from javascript.
So you should define a javascript
onunload
handler which invokes your applet's close method.通常,一旦浏览器窗口(或只是选项卡)关闭或导航到其他地方,插件将尝试停止小程序。
IIRC,在插件开始变得中世纪之前,您曾经有 20 秒的时间来完成清理工作。我相信,如果没有其他小程序共享 JVM,如果您不停止,该进程现在就会被终止。
所以,你真的不想一直试图显示恼人的保存对话框。我什至想说,你不想要烦人的保存对话框。所以只要安静地进行保存即可。重新启动时添加“您没有保存,是否要恢复这些更改”(例如 Chrome 中工具栏下方的重新打开窗口对话框)。为了获得额外的标记,请在后台定期记录增量,以便即使在突然终止或网络故障的情况下也可以恢复数据。
Generally the PlugIn will try to stop the applet once the browser window (or just tab) closes or navigates elsewhere.
IIRC, you used to get 20 seconds to do your clear up before the PlugIn started getting medieval. I believe if there are no other applets sharing the JVM, the process will now get killed if you don't stop.
So, you really don't want to be hanging around attempting to show annoying save dialogs. I would go so far as to say, you don't want annoying save dialogs. So just do the saves quietly. Add a "you didn't save, do you want to restore these changes" thing (like the re-open windows dialogette beneath the toolbar in Chrome) when restarting. For extra marks, log deltas periodically in the background, so that even in the case of abrupt termination or network failure the data can be restored.