Skip to content

history 物件的常用屬性與方法

tags: JavaScript BOM history

概述

  • history 物件 是瀏覽器物件模型(BOM)的一部分,屬於 window.history
  • 它管理瀏覽器的歷史紀錄,讓你查詢歷史狀態或控制頁面導航(前進、後退)
  • 屬性少,方法為主要功能,用於操作瀏覽器歷史

常用屬性

屬性名稱類型描述範例
lengthnumber歷史紀錄中的條目數量console.log(history.length) // 5
stateany當前歷史條目的狀態物件(由 pushStatereplaceState 設置)console.log(history.state) //
scrollRestorationstring控制頁面載入時的滾動行為(automanualhistory.scrollRestoration = 'manual'

常用方法

方法名稱描述範例
back()返回歷史紀錄中的上一頁history.back()
forward()前進到歷史紀錄中的下一頁history.forward()
go(delta)在歷史紀錄中移動指定步數(正數前進,負數後退)history.go(-2) // 回退兩頁
pushState(state, title, url)新增歷史條目並更改 URL,不重新載入頁面history.pushState({ page: 1 }, '', '/page1')
replaceState(state, title, url)修改當前歷史條目,不新增紀錄history.replaceState({ page: 2 }, '', '/page2')

屬性與方法詳解

scrollRestoration

  • 值:
    • auto: 瀏覽器自動恢復滾動位置(預設)
    • manual: 開發者手動控制滾動
  • 範例:
javascript
history.scrollRestoration = 'manual'
window.scrollTo(0, 0) // 自訂滾動位置

pushStatereplaceState

  • 共同點: 修改 URL 和狀態,不觸發頁面重新載入
  • 差異: pushState: 新增一條歷史紀錄,可返回 replaceState: 替換當前紀錄,無法返回舊狀態
  • 參數:
    • state: 自訂狀態物件
    • title: 標題(目前瀏覽器多忽略)
    • url: 新 URL(相對或絕對)