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イベントが発火する仕組みです。
実行結果
上記のコードを実行すると、次のような画面が表示されます。

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

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

アラートには現在のロケーション(URL)と、event.stateに格納された履歴状態の情報がJSON形式で表示されます。これにより、履歴操作に応じてページの状態を管理できることが分かります。
-
HTML DOM HRオブジェクトとは?作成方法と使い方を解説
HTML DOM の HR オブジェクトは、HTML 文書内の <hr> 要素を表すオブジェクトです。<hr> 要素は、コンテンツの話題やテーマの区切りを視覚的に示す水平線(罫線)として表示されます。JavaScript を使えば、この水平線を動的に生成してページに挿入することも可能です。ここでは、HR オブジェクトの基本的な作成方法と実践的な使用例を紹介します。HRオブジェクトの作成方法(構文)hr オブジェクトを新しく作成するには、document.createElement() メソッドを使用します。構文は以下のとおりです。document.createEleme
-
HTML DOM Ulオブジェクトとは?<ul>要素の操作方法とサンプルコードを解説
HTML DOM の Ul オブジェクトは、HTML の <ul>(順序なしリスト)要素を表すオブジェクトです。JavaScript を使うことで、リストの動的な生成や操作が可能になります。 <ul> 要素の作成方法 新しい <ul> 要素を作成するには、document.createElement() メソッドを使用します。 var ulObject = document.createElement(UL) HTML5で非推奨となったプロパティ ulObject には以下のプロパティが存在しますが、これらは HTML5 ではサポートされていないため注