はりをきば

そこにピカマンがいる限り 私はテイッハットウッをやめない

IEで確認(警告)ダイアログを出さずにwindow.close()する方法

¯注意
この記事はを最後に更新されていない。
更新日が1年以上前の記事はリンク切れしていたり、情報としては役に立たなくなっている可能性あり。
ˆMixed Contentについて
この記事は投稿日が古い為、記事中の画像は非SSL(http://)で貼られている。(※投稿画像以外は全てSSL)
この件に関して詳しくはこちらを参照。

window.close()を使用するには一般的には以下の条件のどちらかを満たす必要がある。

  • target="_blank"で開かれたページであること
  • window.open()で開かれたポップアップであること

これはもうご存知のとおり。


一般的なブラウザは上の条件を満たしていないページでclose()を実行しても
ウンともスンとも言わない。不便極まりない。


駄菓子菓子、あの伝説の超IEは条件関係なく使える。
が、その代償(?)としてポップアップ以外では確認ダイアログが出る。
即ちtarget="_blank"のページも対象。
f:id:Gutyan:20131206211751p:plain
条件が揃わないとウンともスンとも言わない他ブラウザに比べればマシなのかもしれんが
target="_blank"で開いたメインタブのページにすらこれが出てくるのはちとウザイ。


そこで、私がよく使うclose()の代替スクリプトがこれ。

window.open('', '_self').close();

サンプルページ (IEで見てね)


こいつをIEで踏むと、条件とか関係なくいきなり自身のタブを閉じる。