2012-01-28 6 views
1

GWTを使用してブラウザウィンドウが閉じられているかどうかを検出する方法はありますか?ブラウザウィンドウが閉じているかどうかを検出する方法はありますか?

Window.open("some_url", "__blank", null); 

私は、GWTによって開かれた、このウィンドウが閉じられている天気を検出する必要があります。たとえば、ウィンドウには、このコードを使用してGWTて開かれました。それを行う方法はありますか?

+0

http://stackoverflow.com/questions/6804118/how-to-create-one-database-connection-per-user-on-a-java-servlet-application/6804785#6804785 –

答えて

2

私はそう考えると、クロスブラウザとするのが本当の問題です。 GWTはonunloadイベントを処理します(ブラウザが文書を閉じる前に発生した)

Window.addCloseHandler(new CloseHandler<Window>() { 
      public void onClose(CloseEvent<Window> windowCloseEvent) { 

      } 
     }); 

を持っています。 しかし、ページを更新すると、このイベントも発生するため、すべてのブラウザでブラウザの終了イベントを処理することはできません。

GWTもJavaScriptがこの記事を参照して生成するので:我々はすでにへの100%のばか証明方法がないことを議論してきたように

結論

:ここWindow Close Event of Browser は、その記事の結論であります 多くの場合ブラウザの終了イベントを検出すると、上記の手法 が失敗することがあります。たとえば、ユーザーが タスクマネージャからブラウザのプロセスを強制終了すると、さらに多くのケースが発生する可能性があります。しかし多くの場合、 このテクニックは便利です。運と幸せなプログラミングのベスト。正しい

+0

ページを再読み込みすると、最後のセッションの残りの部分ではなく、エンティティのコンテンツが再度提供されるはずです。 – Stefan

+0

@Jamshidなぜクロスブラウザですか?新しいウィンドウでページの種類を開くことはできません(それにクロスブラウザの問題はありませんか?)それは意味ですか? – xybrek

+0

オープンはすべてのブラウザで同じですが、ウィンドウの更新とブラウザの終了を区別することはできません。両方のイベントは 'onUnload'イベントによって処理されます。 –

関連する問題