2

私はここにこのコードを持っています:

<?php
    error_reporting(0);
    if(isset($_GET['bd'])){
?>

<script>
    window.close();
</script>


<?php

}

これはChromeでは正常に機能していますが、FireFoxでは機能していません。これに既知の問題はありますか?上記のブラウザ間で一貫して動作させるにはどうすればよいですか?

4

2 に答える 2

8

ほとんどのブラウザでwindow.close()window、問題の にopener. とは、あなたがを開くopenerを持っていることを意味します。で閉じることができるのは だけです。parent windowchild windowchild windowwindow.close()

于 2012-05-21T15:08:57.173 に答える
4

Firefox の場合、正式なリファレンスは MDN です。そこからの引用:

このメソッドは、window.open メソッドを使用してスクリプトによって開かれたウィンドウに対してのみ呼び出すことができます。ウィンドウがスクリプトによって開かれなかった場合、JavaScript コンソールに次のエラーが表示されます。

ソース: https://developer.mozilla.org/en/DOM/window.close

あなたのウェブページはサーバー側で構築され、javascript ではなく定期的に開かれるため、あなたの場合は機能しません。

Internet Explorer での異なる動作にも注意してください。

スクリプトで開かれていないウィンドウで window.close メソッドを呼び出すと、確認ダイアログ ボックスが表示されます。スクリプトを使用して、最後に実行されていた Windows Internet Explorer のインスタンスを閉じると、確認ダイアログ ボックスも開きます。

したがって、これは機能しますが、確認が必要です。

最後に、Opera でテストしたところ、Chrome の場合と同じように、定期的に開いているウィンドウでも動作します。

于 2012-05-21T15:10:03.560 に答える