HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

HTML DOM PopStateEventオブジェクトとは?使い方とサンプルコードを解説

HTML DOMのPopStateEventオブジェクトは、ブラウザの履歴(history)に変化が生じた際に発生する「popstate」イベントを扱うためのイベントハンドラです。ユーザーが「戻る」ボタンや「進む」ボタンを操作したときなどに、このイベントがトリガーされます。

PopStateEventのプロパティ

プロパティ説明
state履歴エントリのコピーを表すオブジェクトを返します。

サンプルコード

それでは、HTML DOMのPopStateEventオブジェクトの具体的な使用例を見ていきましょう。

<!DOCTYPE html>
<html>
<head>
<style>
   html{
      height:100%;
   }
   body{
      text-align:center;
      color:#fff;
      background: linear-gradient(62deg, #FBAB7E 0%, #F7CE68 100%) center/cover no-repeat;
      height:100%;
   }
   p{
      font-size:1.2rem;
   }
   .btn{
      background:#0197F6;
      border:none;
      height:2rem;
      border-radius:2px;
      width:35%;
      margin:2rem auto;
      display:block;
      color:#fff;
      outline:none;
      cursor:pointer;
   }
</style>
</head>
<body>
<h1>DOM PopStateEvent Event Demo</h1>
<button onclick="display()" class="btn">Click Me</button>
<script>
   function display(){
      window.onpopstate = function(event) {
         alert("location: " + document.location +
            ", state: " + JSON.stringify(event.state));
      };
      history.pushState({
         page: 1
      }, "title home", "?page=home");
      history.pushState({
         page: 2
      }, "title about", "?page=about");
      history.replaceState({
         page: 3
      }, "title contact", "?page=contact");
      history.back();
      history.back();
   }
</script>
</body>
</html>

このサンプルでは、history.pushState()メソッドで新しい履歴エントリを追加し、history.replaceState()メソッドで現在の履歴エントリを置き換えています。その後、history.back()を呼び出して履歴を遡ることで、popstateイベントが発火する仕組みです。

実行結果

上記のコードを実行すると、次のような画面が表示されます。

HTML DOM PopStateEventオブジェクトとは?使い方とサンプルコードを解説

Click Me」ボタンをクリックすると、PopStateEventオブジェクトの動作を確認できます。

HTML DOM PopStateEventオブジェクトとは?使い方とサンプルコードを解説

表示されたアラートダイアログで「OK」をクリックしてください。

HTML DOM PopStateEventオブジェクトとは?使い方とサンプルコードを解説

アラートには現在のロケーション(URL)と、event.stateに格納された履歴状態の情報がJSON形式で表示されます。これにより、履歴操作に応じてページの状態を管理できることが分かります。

  1. HTML DOM HRオブジェクトとは?作成方法と使い方を解説

    HTML DOM の HR オブジェクトは、HTML 文書内の <hr> 要素を表すオブジェクトです。<hr> 要素は、コンテンツの話題やテーマの区切りを視覚的に示す水平線(罫線)として表示されます。JavaScript を使えば、この水平線を動的に生成してページに挿入することも可能です。ここでは、HR オブジェクトの基本的な作成方法と実践的な使用例を紹介します。HRオブジェクトの作成方法(構文)hr オブジェクトを新しく作成するには、document.createElement() メソッドを使用します。構文は以下のとおりです。document.createEleme

  2. HTML DOM Ulオブジェクトとは?<ul>要素の操作方法とサンプルコードを解説

    HTML DOM の Ul オブジェクトは、HTML の <ul>(順序なしリスト)要素を表すオブジェクトです。JavaScript を使うことで、リストの動的な生成や操作が可能になります。 <ul> 要素の作成方法 新しい <ul> 要素を作成するには、document.createElement() メソッドを使用します。 var ulObject = document.createElement(UL) HTML5で非推奨となったプロパティ ulObject には以下のプロパティが存在しますが、これらは HTML5 ではサポートされていないため注