アプリ版:「スタンプのみでお礼する」機能のリリースについて

javascriptでwindow.closed()と関数の実行順序についての質問です。

以下のようなことを実現したいです。なお、(2)ではuserAgentではなく、画面が閉じているかどうかを検知してポップアップを出したいです。
---
(1)自画面の閉じるボタンで関数呼んでwindow.close()実行
(2)同じ関数内で、window.closeでは閉じない場合のみ検知してポップアップを出す
---

一つの関数では(もしくは複数関数を入れ子にしても)、window.closeのあとwindow.closed()の判定などを行おうとすると、window.closeで閉じるはずのブラウザで画面が閉じてくれません。
(window.closeで閉じるブラウザでは、そもそも(2)は実行されないのでは?と思ったり…)

初歩的な質問で申し訳ありませんが、とても困っています。
どうぞよろしくお願いいたします。

A 回答 (2件)

そういう仕組みがあるんですね。


知りませんでした、すみません。

no.1の書き方で、私の環境では閉じました。
一瞬アラートが表示されて、それも一緒にすぐに。
windows vista + google chrome です。
    • good
    • 0

window.close();


if(window.closed == false) {
alert("閉じられませんでした");
}

こうですか?
これだと、閉じますが、一瞬アラートが表示されるんですよね。

window.close()で閉じないのってどういうときなんですか?

この回答への補足

ご回答ありがとうございます!

window.close()で閉じないのは、以下の理由によります。
・今回閉じようとしている画面はjavascriptで開かれた画面ではない
・ブラウザの中には(Firefoxなど)javascriptで開かれていない画面を
javascriptで閉じることをセキュリティ的に許容していない(なので閉じない)ものがある

回答いただいたコードでもやってみましたが、
通常window.closeが効くはずのブラウザでも閉じないです…
(1行目だけでなく、2~4行目の処理までやろうとして閉じないのかと思うのですが)

補足日時:2012/10/18 18:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!