Browser 對象
知識點比較凌亂也基本過時了,稍微了解就好。
BOM:BrowserObjectModel,瀏覽器對象模型,提供JS中對瀏覽器的各種操作的對象,是JS應用中唯一沒有相關標準的部分,這事BOM經常出現問題的所在,主要用于處理瀏覽器窗口與框架,瀏覽器特有的JS擴展也被默認為BOM的一部分,而各瀏覽器之間的公有對象就成了默認的標準
Window 對象
Window 對象表示瀏覽器中打開的窗口。
window
window.history
window.alert()
window 對象描述
Window 對象表示一個瀏覽器窗口或一個框架。在客戶端 JavaScript 中,Window 對象是全局對象,所有的表達式都在當前的環境中計算。也就是說,要引用當前窗口根本不需要特殊的語法,可以把那個窗口的屬性作為全局變量來使用。例如,可以只寫 document,而不必寫 window.document。
同樣,可以把當前窗口對象的方法當作函數來使用,如只寫 alert(),而不必寫 Window.alert()。
除了上面列出的屬性和方法,Window 對象還實現了核心 JavaScript 所定義的所有全局屬性和方法。
Window 對象的 window 屬性和 self 屬性引用的都是它自己。當你想明確地引用當前窗口,而不僅僅是隱式地引用它時,可以使用這兩個屬性。除了這兩個屬性之外,parent 屬性、top 屬性以及 frame[] 數組都引用了與當前 Window 對象相關的其他 Window 對象。
Navigator
Navigator 對象包含有關瀏覽器的信息。
//用來判斷瀏覽器與版本
navigator.userAgent
//判斷用戶瀏覽器是否開啟cookie
navigator.cookieEnabled
Screen
Screen 對象包含有關客戶端顯示屏幕的信息。
//調整任務欄之后無法立即查看更新后的結果,需要重啟瀏覽器(Chrome下)
availHeight 返回顯示屏幕的高度 (除 Windows 任務欄之外)。
availWidth 返回顯示屏幕的寬度 (除 Windows 任務欄之外)。
//雙顯示屏切換,立即生效
height 返回顯示屏幕的高度。
width 返回顯示器屏幕的寬度。
History
History 對象包含用戶(在瀏覽器窗口中)訪問過的 URL。
History 對象是 window 對象的一部分,可通過 window.history 屬性對其進行訪問。
length 返回瀏覽器歷史列表中的 URL 數量。
back() 加載 history 列表中的前一個 URL。
forward() 加載 history 列表中的下一個 URL。
go() 加載 history 列表中的某個具體頁面。
下面一行代碼執行的操作與單擊后退按鈕執行的操作一樣:
history.back()
下面一行代碼執行的操作與單擊兩次后退按鈕執行的操作一樣:
history.go(-2)
Location
Location 對象包含有關當前 URL 的信息。
Location 對象是 Window 對象的一個部分,可通過 window.location 屬性來訪問。
屬性 | 描述 |
---|---|
hash | 設置或返回從井號 (#) 開始的 URL(錨)。 |
host | 設置或返回主機名和當前 URL 的端口號。 |
hostname | 設置或返回當前 URL 的主機名。 |
href | 設置或返回完整的 URL。 |
pathname | 設置或返回當前 URL 的路徑部分。 |
port | 設置或返回當前 URL 的端口號。 |
protocol | 設置或返回當前 URL 的協議。 |
search | 設置或返回從問號 (?) 開始的 URL(查詢部分)。 |
方法 | 描述 |
---|---|
assign() | 加載新的文檔。 |
reload() | 重新加載當前文檔。 |
replace() | 用新的文檔替換當前文檔。 |
對象描述
Location 對象存儲在 Window 對象的 Location 屬性中,表示那個窗口中當前顯示的文檔的 Web 地址。它的 href 屬性存放的是文檔的完整 URL,其他屬性則分別描述了 URL 的各個部分。這些屬性與 Anchor 對象(或 Area 對象)的 URL 屬性非常相似。當一個 Location 對象被轉換成字符串,href 屬性的值被返回。這意味著你可以使用表達式 location 來替代 location.href。
不過 Anchor 對象表示的是文檔中的超鏈接,Location 對象表示的卻是瀏覽器當前顯示的文檔的 URL(或位置)。但是 Location 對象所能做的遠遠不止這些,它還能控制瀏覽器顯示的文檔的位置。如果把一個含有 URL 的字符串賦予 Location 對象或它的 href 屬性,瀏覽器就會把新的 URL 所指的文檔裝載進來,并顯示出來。
除了設置 location 或 location.href 用完整的 URL 替換當前的 URL 之外,還可以修改部分 URL,只需要給 Location 對象的其他屬性賦值即可。這樣做就會創建新的 URL,其中的一部分與原來的 URL 不同,瀏覽器會將它裝載并顯示出來。例如,假設設置了Location對象的 hash 屬性,那么瀏覽器就會轉移到當前文檔中的一個指定的位置。同樣,如果設置了 search 屬性,那么瀏覽器就會重新裝載附加了新的查詢字符串的 URL。
除了 URL 屬性外,Location 對象的 reload() 方法可以重新裝載當前文檔,replace() 可以裝載一個新文檔而無須為它創建一個新的歷史記錄,也就是說,在瀏覽器的歷史列表中,新文檔將替換當前文檔。