増子良太のブログです

増子良太が書いているブログです。テーマをしぼらず、思いついたものをただひたすら書いていきます。

iOS8でwindow.close()でウィンドウが閉じない!

      2014/10/23

久々に衝撃を受けました。

お邪魔している会社の方から質問されたものは下記のような感じでした。

「JavaScriptのwindow.close()でウィンドウが閉じないのって、なんでかわかりますか??」

たぶん途中でJSがエラーを起こしているか、開いたウィンドウではないウィンドウから閉じようとしてたりするのかな?と思ってました。

話を聞いてみると、PCではOK、AndroidもOK、iPhoneのiOSのバージョンが8のものだと起こるというので、自分のiPhone(iPhone5でiOS8.0.2)で試してみると、、、

開いたウィンドウが閉じない・・・

ソースコードをみてもおかしな点はなくて、macにつないでsafariでWebインスペクタで見ても、なんらおかしな点はありませんでした。

確かに他のPCなどで試してみても、ちゃんとウィンドウが閉じることは確認できました。

まさかiOS8のバグ?不具合多いってのは聞いていたけど、、、と思いながら、早速Google先生に聞きまくっていると、

iOS8のwindow.closeについて

javascript – window.close() doesn’t work on iOS 8

【iOS8】【JavaScript】window.close();出来ない

などなど、たくさんでてきて、みんな悩んでいるようです。

stackoverflowで出てくるとなると、もう嘘ではないんですね。。。

もう少し探してみると、AppleのDeveloperForumにも下記のようなページがありました。

window.close does not work with iOS 8 beta 5
https://devforums.apple.com/thread/239638?tstart=0

みなさん大変困っているようです。しかもAppleの人(dino)からは

This is a known bug. There isn’t a workaround, sorry.(既知のバグだ。回避策はない。ごめんよ)

って言われちゃったら、どうしようもないですね。。。

実際自分でもJS書いて試してみましたが。。。

window.close();

window.opener.ChildWindow.close();

開いた側のウィンドウ、開かれたウィンドウでと色々試してみましたが、エラーもでず、undefinedが返ってくるのみでした。

解決策なし。。

どうしようもないですね。

Appleの対応を待つしかないみたいです。

 - Appple