window.onclose というプロパティがあるけど これは window が閉じられたらではなくて dialog が閉じたら発生するイベントらしい(ややこしいな
window が閉じられたことを検出するには unload イベント
beforeunload もあるけど外部からのリスナ設定だとこっちは呼び出されないみたい
const w = window.open(url)
w.addEventListener("load", () => console.log("load"))
w.addEventListener("unload", () => console.log("unload"))
これを試してみると
unload
load
(タブを閉じる)
unload
開いた直後に unload イベントが起きてる
その後ロードが終わったら load イベント
タブが閉じた後にもう一度 unload イベント
読み込み開始時に unload が起きるらしいけどこれはいらない情報
この unload は確実にどのブラウザでも起きるのか怪しそうな気がするし unload イベントのリスナは load イベントの中でつけるのが良さそう
const w = window.open(url)
w.addEventListener("load", () => {
w.addEventListener("unload", () => console.log("unload"))
})