赤羽 (2010年5月10日 09:30) 流通システム部 / その他
IEでJavaScriptの「window.close」使って画面を閉じる際に、 親ウィンドウを閉じようとすると、 「ウィンドウは、表示中のWebページにより閉じられようとしています。 このウィンドウを閉じますか?」 という確認ダイアログが表示されます。 (親ウィンドウから子ウィンドウを閉じる場合は確認ダイアログは表示されません) この確認ダイアログを表示させなくする方法があります。 IE6場合は以下のコードで実現出来ます。
window.opener = true; window.close();
通常のウィンドウを閉じる「window.close」の前に、 「window.opener」の中に何か加えると、 確認ダイアログは表示されずに閉じる事が出来ます。 これはIEが「window.opener」の中身がnullか否かで、 親ウィンドウなのか子ウィンドウなのかを判断している事を利用しています。 (window.opener:自分自身を開いた親ウィンドウを示すウィンドウオブジェクト)
しかし、上記の方法ではIE7以降でダイアログが表示されてしまいます。 IE7以降でも確認ダイアログを表示させずに閉じるためには、 以下のコードが有効です。
(window.open('','_self').opener=window).close();
上記のコードを「window.close」の替わりに使用することで、 IE6~IE8まで、確認ダイアログを表示させずに画面を閉じる事が出来ます。
ただし、これらの方法は裏技のようなものなので、 将来的に使用出来なくなる可能性があることを覚えておくべきでしょう。
【JavaScript】IEで確認ダイアログを表示せずに画面を閉じる
赤羽 (2010年5月10日 09:30)
流通システム部 / その他
IEでJavaScriptの「window.close」使って画面を閉じる際に、
親ウィンドウを閉じようとすると、
「ウィンドウは、表示中のWebページにより閉じられようとしています。
このウィンドウを閉じますか?」
という確認ダイアログが表示されます。
(親ウィンドウから子ウィンドウを閉じる場合は確認ダイアログは表示されません)
この確認ダイアログを表示させなくする方法があります。
IE6場合は以下のコードで実現出来ます。
通常のウィンドウを閉じる「window.close」の前に、
「window.opener」の中に何か加えると、
確認ダイアログは表示されずに閉じる事が出来ます。
これはIEが「window.opener」の中身がnullか否かで、
親ウィンドウなのか子ウィンドウなのかを判断している事を利用しています。
(window.opener:自分自身を開いた親ウィンドウを示すウィンドウオブジェクト)
しかし、上記の方法ではIE7以降でダイアログが表示されてしまいます。
IE7以降でも確認ダイアログを表示させずに閉じるためには、
以下のコードが有効です。
(window.open('','_self').opener=window).close();上記のコードを「window.close」の替わりに使用することで、
IE6~IE8まで、確認ダイアログを表示させずに画面を閉じる事が出来ます。
ただし、これらの方法は裏技のようなものなので、
将来的に使用出来なくなる可能性があることを覚えておくべきでしょう。