みなさんこんにちは!
今回の記事は、

・window.close()メソッドを使ってもウィンドウが閉じられない…
というお悩みを解決する記事になっています。
・window.close()メソッドを使ってウィンドウを閉じる実装例【コピペでOK】
・window.close()メソッドを使用する際の注意事項
フリーランス案件を探すならこのエージェント!
転職を考えているならこのエージェント!
Javascriptを使ってウィンドウ(window)を閉じる方法
Javascriptを使ってウィンドウを閉じるには、window.close()メソッドを使用します。
使用機会はあまり多くはないと思いますが、以下のような動きを実装するためにはwindow.close()
メソッドを使用する必要が出てきます。
- 1. ボタンクリックのイベントでサブウィンドウを表示する
- 2. サブウィンドウで確認事項を表示
- 3. 「確認しました」ボタンを押してサブウィンドウを閉じる
使い方はとても簡単で、閉じたいウィンドウをclose()メソッドのレシーバに指定するだけで大丈夫です。
window.close()メソッドの使い方
window.close()
// この「window」部分に閉じたいウィンドウを指定します。
window.close()メソッドの実装例【コピペでOK】
続いては、window.close()の実装例をご紹介していきます。
ここでは、一度ウィンドウを開いて、3秒後にそのウィンドウを閉じる動きを実装していきます。
実装コード
<p>以下のボタンを押すと新規ウィンドウでこのブログが開きます</p>
<button onClick="openNewWindow()">新規ウィンドウを開く</button>
<script>
function openNewWindow() {
const $window = window.open(https://hataworakuni.net/, null, 'top=100, left=500, width=1000, height=800')
setTimeout(() => $window.close(), 3000)
}
</script>
上記のコードでは以下のことを実施しています。
- 「新規ウィンドウを開く」ボタンを押してopenNewWindow()メソッドを動かす
- window.open()メソッドを使って、サブウィンドウを開き、それをそのまま$windowという変数に代入
- setTimeout()関数を使って、3秒後にサブウィンドウ($window)を閉じる
実際に以下のボタンで動作確認をしてみてください。
動作確認用
以下のボタンを押すと新規ウィンドウでこのブログが開きます
-272x300.jpg)
今回の記事は、 特定の動作の後に違うURLへ遷移させたいJavascriptを使って新規タブでリンクを開きたいJavascriptを使って新規ウィンドウでリンクを開きたい というお悩みをお持ちの方に向けた記事になっています。 […]
window.close()メソッドを使用する際の注意点
このwindow.close()メソッドですが、とても簡単である反面、使用する際には1点注意が必要です。
それは、「window.open() メソッドによって開かれたウィンドウしか閉じることができない」ということです。
もしそのウィンドウがwindow.open() メソッドによって開かれたものでない場合、「スクリプトによって開かれたウィンドウ以外を閉じることができません」というエラー文がコンソール画面に表示されます。
そのため、現在開かれているウィンドウを閉じるためには、以下のように実装するようにしましょう。
<p>以下のボタンを押すとウィンドウが閉じられます</p>
<button onClick="closeWindow()">ウィンドウを閉じる</button>
<script>
function closeWindow() {
window.open('about:_blank', '_self').close()
}
</script>
上記の理屈としては、「一度自分自身を空のウィンドウとして開き、Javascriptが操作できるようにした上で、window.close()メソッドを使ってウィンドウを閉じる」という動きになります。
-272x300.jpg)
最後に
さて、ここまで、window.close()メソッドを使ってウィンドウを閉じる方法について解説してきましたがいかがでしたか?
実装自体は非常に簡単ですが、Javascriptを使って自分自身で開いたウィンドウしか閉じることはできないため、その点だけ注意しておきましょう!
このブログを通じて少しでも「傍(はた)を楽(らく)にする」ことができていれば嬉しく思います。
最後まで読んで頂きありがとうございました。
フリーランス案件を探すならこのエージェント!
転職を考えているならこのエージェント!