4
1

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 1 year has passed since last update.

今開いてるページから迂闊に移動したくないときに使えるブックマークレットを作った

Last updated at Posted at 2023-03-06

はじめに

皆さん「このページ本当によく開くから、全く遷移せず常にこのページを表示し続けたいのに
気がついたら他のページ遷移させちゃってた・・。」
みたいなことありませんか?

特に、ただブックマーク開き直せばなんとかなるようなページではなく
開いた後さらに条件を選んだりなんだりポチポチする必要があるサイトだと最悪です。
面倒の極みです。

これを繰り返して幾度。
うんざりしたので、そもそも気軽に別画面に遷移しないようにしました。

使うとこうなるよーというお話

使う前

何の変哲もないYahoo! Japanのページです。
キャプチャ.PNG
 

気になるニュースがあったので、ついポチッと押せばそのまま遷移しちゃいます。
キャプチャ.PNG

そのままあれよあれよと遷移していき、気がつけばYahoo! Japanのトップが遥か彼方にいってしまいました。

使った後

何の変哲もないYahoo! Japanのページです。
キャプチャ.PNG

気になるニュースがあったので、ポチッと押すと警告が出てきました。
キャプチャ.PNG

そういえばこのページからは離れたくなかったんだった!ホイールクリックで別タブで開こう!
と思い直すことに成功しました。

使い方

下記のコードをブックマークに保存しておいてください。
javascript:window.addEventListener('beforeunload',function(e){e.returnValue='遷移防止'},!1)

こんな感じ
キャプチャ.PNG

あとは遷移したくないページで、このブックマークを呼び出すだけです。

やってること

ブックマークレットとは

要するに、ブックマークに簡単なプログラムを仕込んでおいて、ユーザーが押すタイミングをトリガーに発火するってことです。
基本的には、ブラウザで動作する言語JavaScriptを実行するコードを仕込んでおくものだと思っています。

参考:今更ながら、ブックマークレットに入門する

です。

今回のJavaScriptでやってること

beforeunload(ウィンドウ、文書、およびそのリソースがアンロードされる直前に発生するイベント)時に、処理を実行しても問題ないかアラートを出すようにしています。
とはいえ、returnValueを設定しているだけですけど・・。
こちらを真似させていただきました。
参考:【JavaScript】ページ移動・更新を検知する

4
1
1

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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?