• 締切済み

閉じた後のwindow.closed検知

javascriptでwindow.closed()と関数の実行順序についての質問です。 以下のようなことを実現したいです。なお、(2)ではuserAgentではなく、画面が閉じているかどうかを検知してポップアップを出したいです。 --- (1)自画面の閉じるボタンで関数呼んでwindow.close()実行 (2)同じ関数内で、window.closeでは閉じない場合のみ検知してポップアップを出す --- 一つの関数では(もしくは複数関数を入れ子にしても)、window.closeのあとwindow.closed()の判定などを行おうとすると、window.closeで閉じるはずのブラウザで画面が閉じてくれません。 (window.closeで閉じるブラウザでは、そもそも(2)は実行されないのでは?と思ったり…) 初歩的な質問で申し訳ありませんが、とても困っています。 どうぞよろしくお願いいたします。

みんなの回答

回答No.2

そういう仕組みがあるんですね。 知りませんでした、すみません。 no.1の書き方で、私の環境では閉じました。 一瞬アラートが表示されて、それも一緒にすぐに。 windows vista + google chrome です。

回答No.1

window.close(); if(window.closed == false) { alert("閉じられませんでした"); } こうですか? これだと、閉じますが、一瞬アラートが表示されるんですよね。 window.close()で閉じないのってどういうときなんですか?

kdjnop
質問者

補足

ご回答ありがとうございます! window.close()で閉じないのは、以下の理由によります。 ・今回閉じようとしている画面はjavascriptで開かれた画面ではない ・ブラウザの中には(Firefoxなど)javascriptで開かれていない画面を javascriptで閉じることをセキュリティ的に許容していない(なので閉じない)ものがある 回答いただいたコードでもやってみましたが、 通常window.closeが効くはずのブラウザでも閉じないです… (1行目だけでなく、2~4行目の処理までやろうとして閉じないのかと思うのですが)

関連するQ&A