Browser 對(duì)象
W3School搬運(yùn)工,點(diǎn)我直達(dá)W3School
知識(shí)點(diǎn)比較凌亂也基本過時(shí)了蓉媳,稍微了解就好。
BOM:BrowserObjectModel,瀏覽器對(duì)象模型酪呻,提供JS中對(duì)瀏覽器的各種操作的對(duì)象盐须,是JS應(yīng)用中唯一沒有相關(guān)標(biāo)準(zhǔn)的部分,這事BOM經(jīng)常出現(xiàn)問題的所在阶冈,主要用于處理瀏覽器窗口與框架,瀏覽器特有的JS擴(kuò)展也被默認(rèn)為BOM的一部分填具,而各瀏覽器之間的公有對(duì)象就成了默認(rèn)的標(biāo)準(zhǔn)
Window 對(duì)象
Window 對(duì)象表示瀏覽器中打開的窗口匆骗。
window
window.history
window.alert()
window 對(duì)象描述
Window 對(duì)象表示一個(gè)瀏覽器窗口或一個(gè)框架。在客戶端 JavaScript 中盟广,Window 對(duì)象是全局對(duì)象,所有的表達(dá)式都在當(dāng)前的環(huán)境中計(jì)算筋量。也就是說碉熄,要引用當(dāng)前窗口根本不需要特殊的語法,可以把那個(gè)窗口的屬性作為全局變量來使用具被。例如一姿,可以只寫 document跃惫,而不必寫 window.document。
同樣蛉顽,可以把當(dāng)前窗口對(duì)象的方法當(dāng)作函數(shù)來使用,如只寫 alert()携冤,而不必寫 Window.alert()闲勺。
除了上面列出的屬性和方法,Window 對(duì)象還實(shí)現(xiàn)了核心 JavaScript 所定義的所有全局屬性和方法翘地。
Window 對(duì)象的 window 屬性和 self 屬性引用的都是它自己。當(dāng)你想明確地引用當(dāng)前窗口昧穿,而不僅僅是隱式地引用它時(shí)橙喘,可以使用這兩個(gè)屬性。除了這兩個(gè)屬性之外渴杆,parent 屬性、top 屬性以及 frame[] 數(shù)組都引用了與當(dāng)前 Window 對(duì)象相關(guān)的其他 Window 對(duì)象囊拜。
Navigator
Navigator 對(duì)象包含有關(guān)瀏覽器的信息比搭。
//用來判斷瀏覽器與版本
navigator.userAgent
//判斷用戶瀏覽器是否開啟cookie
navigator.cookieEnabled
Screen
Screen 對(duì)象包含有關(guān)客戶端顯示屏幕的信息。
//調(diào)整任務(wù)欄之后無法立即查看更新后的結(jié)果蜜托,需要重啟瀏覽器(Chrome下)
availHeight 返回顯示屏幕的高度 (除 Windows 任務(wù)欄之外)霉赡。
availWidth 返回顯示屏幕的寬度 (除 Windows 任務(wù)欄之外)。
//雙顯示屏切換穴亏,立即生效
height 返回顯示屏幕的高度。
width 返回顯示器屏幕的寬度棠涮。
History
History 對(duì)象包含用戶(在瀏覽器窗口中)訪問過的 URL刺覆。
History 對(duì)象是 window 對(duì)象的一部分,可通過 window.history 屬性對(duì)其進(jìn)行訪問驳糯。
length 返回瀏覽器歷史列表中的 URL 數(shù)量氢橙。
back() 加載 history 列表中的前一個(gè) URL。
forward() 加載 history 列表中的下一個(gè) URL充蓝。
go() 加載 history 列表中的某個(gè)具體頁面喉磁。
下面一行代碼執(zhí)行的操作與單擊后退按鈕執(zhí)行的操作一樣:
history.back()
下面一行代碼執(zhí)行的操作與單擊兩次后退按鈕執(zhí)行的操作一樣:
history.go(-2)
Location
Location 對(duì)象包含有關(guān)當(dāng)前 URL 的信息协怒。
Location 對(duì)象是 Window 對(duì)象的一個(gè)部分卑笨,可通過 window.location 屬性來訪問。
屬性 | 描述 |
---|---|
hash | 設(shè)置或返回從井號(hào) (#) 開始的 URL(錨)赤兴。 |
host | 設(shè)置或返回主機(jī)名和當(dāng)前 URL 的端口號(hào)。 |
hostname | 設(shè)置或返回當(dāng)前 URL 的主機(jī)名座舍。 |
href | 設(shè)置或返回完整的 URL陨帆。 |
pathname | 設(shè)置或返回當(dāng)前 URL 的路徑部分。 |
port | 設(shè)置或返回當(dāng)前 URL 的端口號(hào)承二。 |
protocol | 設(shè)置或返回當(dāng)前 URL 的協(xié)議纲爸。 |
search | 設(shè)置或返回從問號(hào) (?) 開始的 URL(查詢部分)。 |
方法 | 描述 |
---|---|
assign() | 加載新的文檔读虏。 |
reload() | 重新加載當(dāng)前文檔袁滥。 |
replace() | 用新的文檔替換當(dāng)前文檔灾螃。 |
對(duì)象描述
Location 對(duì)象存儲(chǔ)在 Window 對(duì)象的 Location 屬性中,表示那個(gè)窗口中當(dāng)前顯示的文檔的 Web 地址嵌赠。它的 href 屬性存放的是文檔的完整 URL熄赡,其他屬性則分別描述了 URL 的各個(gè)部分。這些屬性與 Anchor 對(duì)象(或 Area 對(duì)象)的 URL 屬性非常相似炊豪。當(dāng)一個(gè) Location 對(duì)象被轉(zhuǎn)換成字符串凌箕,href 屬性的值被返回牵舱。這意味著你可以使用表達(dá)式 location 來替代 location.href缺虐。
不過 Anchor 對(duì)象表示的是文檔中的超鏈接,Location 對(duì)象表示的卻是瀏覽器當(dāng)前顯示的文檔的 URL(或位置)慧妄。但是 Location 對(duì)象所能做的遠(yuǎn)遠(yuǎn)不止這些剪芍,它還能控制瀏覽器顯示的文檔的位置。如果把一個(gè)含有 URL 的字符串賦予 Location 對(duì)象或它的 href 屬性紊浩,瀏覽器就會(huì)把新的 URL 所指的文檔裝載進(jìn)來,并顯示出來费彼。
除了設(shè)置 location 或 location.href 用完整的 URL 替換當(dāng)前的 URL 之外口芍,還可以修改部分 URL,只需要給 Location 對(duì)象的其他屬性賦值即可颠猴。這樣做就會(huì)創(chuàng)建新的 URL,其中的一部分與原來的 URL 不同翘瓮,瀏覽器會(huì)將它裝載并顯示出來裤翩。例如,假設(shè)設(shè)置了Location對(duì)象的 hash 屬性呵扛,那么瀏覽器就會(huì)轉(zhuǎn)移到當(dāng)前文檔中的一個(gè)指定的位置筐带。同樣,如果設(shè)置了 search 屬性伦籍,那么瀏覽器就會(huì)重新裝載附加了新的查詢字符串的 URL腮出。
除了 URL 屬性外利诺,Location 對(duì)象的 reload() 方法可以重新裝載當(dāng)前文檔剩燥,replace() 可以裝載一個(gè)新文檔而無須為它創(chuàng)建一個(gè)新的歷史記錄,也就是說灭红,在瀏覽器的歷史列表中,新文檔將替換當(dāng)前文檔君珠。