Есть ли способ обнаружить закрытие браузера в JApplet? - PullRequest
1 голос
/ 12 декабря 2011

Существуют определенные файлы конфигурации, которые пользователь должен сохранить перед закрытием браузера.Есть ли способ определить, пытается ли пользователь закрыть браузер, и предупредить его о первом сохранении файлов?

Ответы [ 3 ]

1 голос
/ 12 декабря 2011

Вы можете использовать JavaScript, чтобы обнаружить это . И вы можете вызывать методы апплета из javascript .

Таким образом, вы должны определить обработчик javascript onunload, который вызывает метод close вашего апплета.

1 голос
/ 12 декабря 2011

Обычно подключаемый модуль пытается остановить апплет, как только окно браузера (или просто вкладка) закрывается или перемещается в другое место.

IIRC, у вас было 20 секунд, чтобы прояснить ситуацию, прежде чем плагин стал средневековым. Я полагаю, что если нет других апплетов, совместно использующих JVM, процесс теперь прекратится, если вы не остановитесь.

Итак, вы действительно не хотите бездельничать, пытаясь показать раздражающие диалоги сохранения. Я бы сказал, что вы не хотите раздражать диалоги сохранения. Так что делайте сейвы спокойно. При перезапуске добавьте элемент «Вы не сохранили, хотите ли вы восстановить эти изменения» (например, заново открыть диалоговое окно Windows под панелью инструментов в Chrome). Для дополнительных отметок периодически регистрируйте дельты в фоновом режиме, чтобы даже в случае внезапного завершения или сбоя в сети данные можно было восстановить.

1 голос
/ 12 декабря 2011

Вы должны определить публичный метод внутри вашего апплета и вызывать его, используя Javascript, прежде чем пользователь закроет страницу: window.onbeforeunload = document.YourApplet.YourMethod(event);, где YourApplet - это атрибут имени вашего апплета: <applet name="YourApplet" ..., а YourMethod - это метод, который вы определили в своем апплете.

...