2015年11月6日金曜日

javascriptで子ウィンドウが閉じているかどうかを確認して、閉じてたら何かしたい的なお話

  • このエントリーをはてなブックマークに追加

まんまタイトル通り。
あんまこの時代子ウィンドウを使って云々とかそういうことってあまりないんだけど、
まぁたまには使う事もあるよね的なときもあると思うんだけど、
そういうときに開いたウィンドウが閉じているかどうかを判別して、閉じてたらごにょごにょしたいってことがあると思う。

ってことで今回はそのお話をば。

<script>
$("#openWindow").on("click",function(e){
  e.preventDefault();

  var interval = 0;

  var MsgWindow = window.open("popup.html","MsgWindow",'height=202,width=800');
  interval = setInterval(function(){
    if(MsgWindow.closed){
      clearInterval(interval);
    }
  },1000);
});
</script>
<script>
window.close();
</script>

たったこんだけ。
window.openをする際に、返り値にwinwodオブジェクトが来るので、
それをintervalでclosedしていないかどうか常に見るだけ。

ちなみにpopupの方はすぐに閉じるような仕様にしてある。

ってことでこんな感じでやってあげれば閉じたのを検知してそこから何かする事が出来るよ的な。
用途としては子ウィンドウから親ウィンドウに値を渡し、その後親ウィンドウが渡された値を処理するみたいな感じとか。

Adsense