8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ページ遷移時の「このサイトを離れますか?」を意地でも表示しない方法

Posted at

フォームの入力値を編集したときなどに表示される「このサイトを離れますか?」というポップアップを非表示にする方法です。

色々と調べましたが、Object.definePropertyの setter で検知して値を上書きすると確実でした。

Object.defineProperty(window, 'onbeforeunload', {
  set(newValue) {
    if (typeof newValue === 'function') window.onbeforeunload = null;
  }
});

ちなみに if (typeof newValue === 'function') 等のチェックがないと変更を検知し続けて無限ループになり、スタックが大変なことになるで気をつけましょう。

また、もし他に良い方法をご存知の方がいたらコメントで教えてください🙏

参考

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?