JavaScriptで戻るボタンのイベントハンドラを実装する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaScriptで戻るボタンのイベントハンドラを実装する方法について現役エンジニアが解説しています。戻るボタンが押下されと事を検知するイベントハンドラが無いためWindowオブジェクトにaddEventListenerメソッドを使い、popstateイベント種類を指定します。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

JavaScriptで戻るボタンのイベントハンドラを実装する方法について解説します。実際のコードをもとに解説していきますので、理解を深めていきましょう。

また、入門向けのJavaSriptを学習できるサイトも紹介しているので、合わせてご覧ください。

 

なお本記事は、オンラインブートキャンプ フロントエンドコース(JavaScript・jQuery講座)の内容をもとにしています。

 

 

田島悠介

今回は、JavaScriptに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

JavaScriptで戻るボタンのイベントハンドラを実装する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

ブラウザの戻るボタンとは

ブラウザの戻るボタンは、皆さんもご利用になったことがあるとおもいますが、気軽に前ページに戻ることが出来る大変便利な機能です。

では、戻るボタンを押した時に具体的にどの様な事が行われているかはご存知でしょうか?

ページ(URL)を移動する場合、通所はサーバにリクエストをして新しいページをレスポンスとして受け取ります。しかしながら、戻るボタンを押した場合は通常の動きと違い、ブラウザがキャッシュしているページを呼び出し表示させます。

其の為、サーバーを介さず素早くページを表示をさせるとことが出来るのです。

戻るボタンのイベントハンドラを実装する方法

残念ながら、JavaScriptで直接戻るボタンが押下されと事を検知するイベントハンドラは有りません。そこで、利用するのがaddEventListener()です。

これは様々なイベントを処理することができる関数で戻るボタンを押下されたことを検知するには’popstate’のイベント種類を指定します。’popstate’は、履歴が更新された時にイベントを検知します。

[PR] JavaScript・jQueryで挫折しない学習方法を動画で公開中

実際に書いてみよう

それでは実際にaddEventListener()を使用して、戻るボタンのイベントハンドラを実装してみましょう。

形式

window.addEventListener( イベントハンドラ, 関数, イベント伝達)

 

  • イベントハンドラには、先ほど説明した’popstate’
  • 関数は取りあえず今回は、’function(e)’
  • イベント伝達は、false※若しくは省略

 

実装

<html>
<head>
<title>JavaScriptで戻るボタンのイベントハンドラを実装する方法</title>
</head>
<body>
戻るボタンを押すと、メッセージが表示されます<br>
<script type="text/javascript">
window.addEventListener('popstate', function(e) {
alert('ブラウザバックを検知しました。');
});
</script>
</body>
</html>

これで、戻るボタンのイベントハンドラの代替え処理を実装できます。

 

筆者プロフィール

小宮山晃史(こみやまこうじ)

現在はOracle系システムの導入コンサルに勤め、仕事でコーディングをする機会は少なくなくなっているが、ライフワークで数多くの言語を勉強中。

iphoneのアプリ開発やWEBサーバの構築など幅広く挑戦しています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

また、TechAcademyではJavaScriptを使ってWebサービスを公開できるオンラインブートキャンプ フロントエンドコース(JavaScript・jQuery講座)を開催しています。

プログラミングの初心者でも受講可能です。Webサイトの表現の幅を広げたいという方はぜひご覧ください。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。