いい感じに確認ダイアログを出したかったけど諦めた
前回の記事のちょっとした続き
denden-kata.hatenablog.com
今回は分かったことだけを淡々と書いていく
自分がChrome拡張機能を作るきっかけとなったのが
「ブラウザを閉じるときに確認ダイアログを表示する」機能が欲しかったから
FireFoxとかにはデフォルトでついてるよね
(はるか昔にちょっとだけ使ったのでもう知らない)
この機能はもともとChromeにも存在していて
あるバージョンの時に切り捨てられてしまった(だから不便だなぁとか思ってた)
結論から言うと、この機能を作るのは諦めた
というか、諦めざるを得なかった・・・
自分ができる範囲で調べたところ
この機能を実装したChrome拡張機能は過去にたくさん存在していた
でも、あるバージョンを境に動かなくなったという報告が多数挙げられているのを発見
また、確認ダイアログのメッセージがカスタムできなくなっていた
www.chromestatus.com
つまるとこ、確認ダイアログに関しては
完全にいじれないようになってしまったらしい
ちなみに昔は
window.onbeforeunload = function() { return 'このメッセージがダイアログに出る'; }
window.addEventListener('beforeunload', function(e) { e.returnValue = 'このメッセージがダイアログに出る'; })
とかでダイアログにメッセージが出てきてくれたらしい
調べたら大体上記のような感じのソースコードが出てくる
そして公式フォーラムでも
「ユーザーの手を止めないために、この機能をなくした」的な文章を発見
ちなみに、悪質な確認ダイアログの表示を消したかったらしいとの噂も
んで、一番の問題は
1.ページ内のリンクによるページ遷移
2.ページ内のボタンによるページ遷移
3.閉じるボタンによってページを落とす(?)(日本語力がない)
を区別する方法が思いつかなかった・・・
beforeunloadだとこのイベント全てに発火します
という訳で、次のネタ探しの旅に出ます・・・
【追記】
記事を更新した瞬間に友人から「まだ何とかなるっぽい」
みたいな話を受け取ったのでもう少しだけ調べてみる