beforeunload でタブが閉じられるのを阻止したい。けれども、ウィンドウが閉じられた場合には阻止したくない。
解決したいこと
beforeunload イベントの中で、タブが閉じられたのか、ウィンドウが閉じられたのかを判別したい
タブが不用意に閉じられる事を阻止しようとしています。
beforeunload イベントを使えばタブが閉じられる前に confirm を出しキャンセルする事ができますが、ブラウザ自体を閉じた場合でもこのイベントは発火されます。
タブを閉じた場合にだけ反応し、ブラウザを閉じた場合には反応しないようにしたいです。
解決方法を教えてください。
具体的なコード
window.addEventListener('beforeunload', event => {
// この中で、
// 1. タブが閉じられた場合はユーザーにタブを閉じるかどうか促しその結果次第でタブが閉じられる事を阻止し、
// 2. ウィンドウを閉じることによって間接的にタブが閉じられる場合には何も促さずタブを閉じる
});
自分で試したこと
Chrome 拡張の tabs を使って実装できないかを考えた
event-onRemoved
しかしこのイベントはタブが既に閉じられた「後」で発火するものであって、タブが閉じられることを阻止する事ができない。
また、閉じられたタブがどのような URL を開いていたのかも取得することはできない。
Chrome 拡張の windows を使って実装できないかも考えた
event-onRemoved
こちらもウィンドウが既に閉じられた後で発火するイベントである為、タイミング的に手遅れ。
0