Webブラウザには、履歴を管理するhistory
オブジェクトがあります。その中の history.back()
メソッドを使うことで、履歴のひとつ前のページに戻ることができます。今回は、その基本的な使い方や使用時の注意点についてまとめていきたいと思います。
目次 非表示
history.back()
は、ブラウザの「戻る」ボタンと同じ動作をするメソッド です。
JavaScript
history.back();
このメソッドを実行すると、現在のページの1つ前のページに戻ります。
JavaScript
document.getElementById('backButton').addEventListener('click', function() {
history.back();
});
HTML
<button id="backButton">前のページに戻る</button>
addEventListener
を使用して、button
をクリックするとユーザーが直前に訪れたページに遷移します。
JavaScript
document.addEventListener('DOMContentLoaded', function() {
if (history.length <= 1) { // 履歴の数を確認
document.getElementById('backButton').style.display = 'none'; // 非表示
}
});
history.length
をチェックし、履歴が1件以下の場合は戻るボタンを非表示にします。ユーザーが直接ページを開いた場合など、戻る先がない時に不要なボタンを表示しないようにします。
history.back()
は履歴がないと動作しません。そのため、代わりに特定のページへ遷移させる処理を加えることもできます。
JavaScript
document.getElementById('backButton').addEventListener('click', function() {
if (history.length > 1) {
history.back();
} else {
location.href = '/default-page.html';
}
});
history.length
をチェックして、履歴がない場合は特定のページへリダイレクトさせます。ユーザーが直接ページを開いた場合に適用可能です。
history.back()
は、ブラウザの履歴に前のページがないと動作しません。そのため、履歴がない場合の代替処理を用意すしましょう。
JavaScript
if (history.length > 1) {
history.back();
} else {
alert('戻る履歴がありません');
}
history.back()
はブラウザの履歴を操作するため、SPA の場合、期待通りの挙動をしないことがあります。window.history.pushState()
やwindow.history.replaceState()
を利用して履歴を適切に管理する必要があります。