Skip to content

window 物件的常用屬性與方法

tags: JavaScript BOM window

概述

  • window 物件 是瀏覽器物件模型(BOM)的核心,代表整個瀏覽器視窗
  • 屬性描述狀態,方法執行操作,以下用表格整理常用項目

常用屬性

屬性名稱類型描述範例
innerWidthnumber視窗內容區域的寬度console.log(window.innerWidth)
innerHeightnumber視窗內容區域的高度console.log(window.innerHeight)
outerWidthnumber視窗總寬度(含邊框)console.log(window.outerWidth)
outerHeightnumber視窗總高度 iwnconsole.log(window.outerHeight)
screenX / screenLeftnumber視窗左邊相對螢幕 X 座標console.log(window.screenX)
screenY / screenTopnumber視窗頂部相對螢幕 Y 座標console.log(window.screenY)
documentDocumentDOM 入口window.document.title = '新標題'
locationLocation當前 URL 資訊console.log(window.location.href)
historyHistory歷史紀錄物件window.history.back()
navigatorNavigator瀏覽器與設備資訊console.log(window.navigator.userAgent)
screenScreen螢幕資訊console.log(window.screen.width)
localStorageStorage本地儲存window.localStorage.setItem('key', 'value')
sessionStorageStorage會話儲存window.sessionStorage.getItem('key')
scrollX / pageXOffsetnumber水平滾動距離console.log(window.scrollX)
scrollY / pageYOffsetnumber垂直滾動距離console.log(window.scrollY)
closedboolean視窗是否關閉console.log(popup.closed)
openerWindow開啟當前視窗的父視窗console.log(window.opener)
namestring視窗名稱window.name = 'myWindow'
selfWindow當前視窗console.log(window.self === window)
topWindow最頂層視窗console.log(window.top)
parentWindow父視窗console.log(window.parent)

常用方法

方法名稱描述範例
alert(message)顯示警告彈窗window.alert('Hello')
confirm(message)顯示確認對話框,回傳 booleanif (window.confirm('確定嗎?')) { console.log('Yes') }
prompt(message, default)顯示輸入框,回傳 stringnulllet name = window.prompt('你的名字?', 'Guest')
open(url, name, specs)開啟新視窗,回傳 Windowwindow.open('https://google.com', 'google', 'width=500,height=500')
close()關閉當前視窗let popup = window.open(); popup.close()
setTimeout(callback, delay)延遲執行,回傳計時器 IDwindow.setTimeout(() => console.log('過 2 秒'), 2000)
clearTimeout(id)清除延遲計時器let id = setTimeout(() => {}, 2000); window.clearTimeout(id)
setInterval(callback, delay)間隔重複執行,回傳計時器 IDwindow.setInterval(() => console.log('每秒'), 1000)
clearInterval(id)清除間隔計時器let id = setInterval(() => {}, 1000); window.clearInterval(id)
scrollTo(x, y)滾動到指定座標window.scrollTo(0, 100)
scrollBy(x, y)相對滾動指定距離window.scrollBy(0, 50)
scroll(x, y)等同 scrollTo,較舊用法window.scroll(0, 100)
addEventListener(type, listener)綁定事件監聽器window.addEventListener('resize', () => console.log('大小改變'))
removeEventListener(type, listener)移除事件監聽器
focus()讓視窗獲得焦點window.focus()
blur()讓視窗失去焦點window.blur()
print()開啟列印對話框window.print()
requestAnimationFrame(callback)請求動畫幀,適合動畫渲染window.requestAnimationFrame(() => console.log('下一幀'))
cancelAnimationFrame(id)取消動畫幀請求

實際應用範例

屬性範例

javascript
console.log(`視窗寬高: ${window.innerWidth}x${window.innerHeight}`)
console.log(`滾動位置: ${window.scrollY}`)
window.localStorage.setItem('theme', 'dark')

方法範例

javascript
window.setTimeout(() => window.alert('3 秒後彈窗'), 3000)
window.addEventListener('scroll', () => window.scrollTo(0, 0))