これが機能するための要件:
ウィンドウランチャースクリプトを介して開かれなかったタブでは常に機能するとは限らないため、JavaScriptハンドルを取得して機能させるには、ウィンドウランチャーからウィンドウ/タブを開く必要があります。このテスト ページでは、次の方法を示します。
http://browserstrangeness.bitbucket.io/window_close_tester.htm
私のランチャーから動作しない場合は、ブラウザ、デバイス、およびバージョンを投稿する必要があります。異なるバージョンのブラウザーは、異なるデバイスで異なる動作をします。(iPad 上の Firefox や Chrome など、彼らが言うものとは異なります。それらは、異なるスキンの Safari です!)
したがって、たとえば「私は iOs 14.5 を使用する iPad で Safari 10.14 を使用しています」と言うことが重要です。そうすれば、私 (またはスタックオーバーフローの他の有益な個人) があなたのためにそれを調査し、結果を投稿して他のユーザーを助けることができます。ありがとうございます。ランチャーを使用し、それが私の例で機能する場合は、機能します。
私は Brock Adams によって投稿された方法を使用していますが、ボタンまたは別のウィンドウからのリンクによってユーザーが起動した場合、Firefox でも機能します。
open(location, '_self').close();
ボタンを押して呼び出すので、ユーザーが開始します。Chrome 90、Internet Explorer 11、Edge、Safari 7-10、および Firefox 35 と 88 を使用しても問題なく動作します。Windows のバージョン 8.1 と 10 を使用してテストしましたMac OS X 10.6、10.9 & 10.10 & 10.14 が異なる場合。
自己終了ウィンドウ コード (自動的に終了するページ上)
それ自体を閉じることができるユーザーが開いたウィンドウで使用される完全なコード:
window_to_close.htm
JavaScript:
function quitBox(cmd)
{
if (cmd=='quit')
{
open(location, '_self').close();
}
return false;
}
HTML:
<input type="button" name="Quit" id="Quit" value="Quit" onclick="return quitBox('quit');" />
これは、実際の例を含むそのテストページです: (Chrome 90.0 と Firefox 88.0 でテスト済み - Windows 10 と Mac 10.14 Mojave の両方)
http://browserstrangeness.bitbucket.io/window_close_tester.htm
Window Opener Code (上記のページを開くページ上)
これを機能させるには、セキュリティが課せられたクロス ブラウザー互換性により、閉じられるウィンドウが、ユーザーが同じサイト ドメイン内のボタンをクリックすることによって既に開かれている必要があります。
たとえば、上記のメソッドを使用して閉じるウィンドウは、このコードを使用してページから開くことができます (コードは、上記のリンクにあるサンプル ページから提供されています)。
window_close_tester.htm
JavaScript:
function open_a_window()
{
window.open("window_to_close.htm");
return false;
}
HTML:
<input type="button" onclick="return open_a_window();" value="Open New Window/Tab" />