target="_blank"などで子Windowで表示し、子Windowに閉じるボタンを付けた場合。javascriptでwindow.close()などとすると、IE7では下記のダイアログが表示される。
ウィンドウは、表示中の Web ページにより閉じられようとしています。このダイアログを表示させない方法。
このウィンドウを閉じますか?
方法1 子Windowを開く方法を変える
javascriptによりwindow.open()で開くと、閉じる際にダイアログは表示されない。
<a href="#" onclick="window.open('test.html');return;">open</a>
方法2 子Windowを閉じる方法を変える
下記のように、ごにょごにょするとダイアログが表示されなくなる。
<a href="#" onclick="(window.open('', '_self').opener = window).close();">close</a>openの第2引数は_topでも_parentでもよい。存在しないものは駄目。
IE6、IE7、Firefox2、Safari3(Windows版)で動作することを確認した。
ただし、IE7ではtarget="_blank"で開いてclose()するのを繰り返すと、IEが異常終了する問題があるので、方法1の方がよい。
参考:
IE7 window.close()で確認ダイアログを出さずに閉じる
2007-03-27 - urxの日記
IE7で閉じる(window.close)と強制終了の対策
2 件のコメント:
いい情報ありがとうございます。
助かりました。
いえいえ、お役に立てて何よりです。
コメントを投稿