私はここにこのコードを持っています:
<?php
error_reporting(0);
if(isset($_GET['bd'])){
?>
<script>
window.close();
</script>
<?php
}
これはChromeでは正常に機能していますが、FireFoxでは機能していません。これに既知の問題はありますか?上記のブラウザ間で一貫して動作させるにはどうすればよいですか?
私はここにこのコードを持っています:
<?php
error_reporting(0);
if(isset($_GET['bd'])){
?>
<script>
window.close();
</script>
<?php
}
これはChromeでは正常に機能していますが、FireFoxでは機能していません。これに既知の問題はありますか?上記のブラウザ間で一貫して動作させるにはどうすればよいですか?
ほとんどのブラウザでwindow.close()
はwindow
、問題の にopener
. とは、あなたがを開くopener
を持っていることを意味します。で閉じることができるのは だけです。parent
window
child
window
child
window
window.close()
Firefox の場合、正式なリファレンスは MDN です。そこからの引用:
このメソッドは、window.open メソッドを使用してスクリプトによって開かれたウィンドウに対してのみ呼び出すことができます。ウィンドウがスクリプトによって開かれなかった場合、JavaScript コンソールに次のエラーが表示されます。
ソース: https://developer.mozilla.org/en/DOM/window.close
あなたのウェブページはサーバー側で構築され、javascript ではなく定期的に開かれるため、あなたの場合は機能しません。
Internet Explorer での異なる動作にも注意してください。
スクリプトで開かれていないウィンドウで window.close メソッドを呼び出すと、確認ダイアログ ボックスが表示されます。スクリプトを使用して、最後に実行されていた Windows Internet Explorer のインスタンスを閉じると、確認ダイアログ ボックスも開きます。
したがって、これは機能しますが、確認が必要です。
最後に、Opera でテストしたところ、Chrome の場合と同じように、定期的に開いているウィンドウでも動作します。