什么是BOM
BOM即瀏覽器對象模型
BOM提供了獨立于內(nèi)容,而與瀏覽器窗口進(jìn)行交互對象
由于BOM主要用于管理窗口與窗口之間的通訊,因此其核心對象是window;
BOM由一系列相關(guān)的對象構(gòu)成,并且每個對象都提供了很多方法與屬性
BOM缺乏標(biāo)準(zhǔn),javascript語法的標(biāo)準(zhǔn)化組織是ECMA,DOM的變準(zhǔn)話組織W3C,BOM最初是Netscaoe瀏覽器標(biāo)準(zhǔn)的一部分。
學(xué)習(xí)BOM學(xué)什么
我們將學(xué)到與瀏覽器窗口交互的一些對象,例如可以移動、調(diào)整瀏覽器大小的window對象,可以用于導(dǎo)航的location對象與history對象,可以獲取瀏覽器、操作系統(tǒng)與用戶屏幕信息的navigator與screen對象,可以使用doucment作為訪問HTML文檔的入口。下面是BOM結(jié)構(gòu)圖。

history
history對象保存著用戶上網(wǎng)的歷史記錄,在窗口打開的那一刻算起。因為history是window對象所以每個瀏覽器窗口都有自己的history對象與特定的window對象關(guān)聯(lián)。
history.go(1) 前進(jìn)一頁
history.go(-2) 后退兩頁
//也可以換成下面
history.forward() // 前進(jìn)一頁
history。back() //后退一頁
location
它提供了與當(dāng)前窗口中加載的文檔有關(guān)的信息,還提供了一些導(dǎo)航功能,它既是window對象也是doucumen對象,下面有l(wèi)oaction對象的所有屬性。
//location屬性
hash:返回URL中的hash,如果URL中的不包含散列,則返回空字符串
host:返回服務(wù)器名稱和端口號
hostname:返回不帶端口號的服務(wù)器名稱
href:返回當(dāng)前加載頁面的完整URL。而location對象的toString方法也返回這個值
prot:返回URL中指定的端口號。如果URL中不包含端口號,則這個屬性返回空字符串
protocol:返回頁面使用協(xié)議。通常是http或https
search:返回URL的查詢字符串。這個字符串以問號開頭
//location位置操作
location.href = '網(wǎng)址' //刷新當(dāng)前頁面跳轉(zhuǎn)到新的網(wǎng)址 <a href="網(wǎng)址"></a>
location.replace('網(wǎng)址') //跳轉(zhuǎn)但不會在歷史記錄中生成新紀(jì)錄
location.reload() //刷新當(dāng)前頁面
window.open('網(wǎng)址') //會新建一個窗口打開頁面<a href="網(wǎng)址" target='_blank'></a>
navigator
最早由netscape navigator 2.0引入的navigator對象,現(xiàn)在已經(jīng)成為識別新客戶端瀏覽器的事實標(biāo)準(zhǔn),下面是它的屬性。
systemLanguage:操作系統(tǒng)的語言
userAgent:瀏覽器的用戶代理字符串
userLanguage:操作系統(tǒng)的默認(rèn)語言
userProfile:借一訪問用戶個人信息的對象
vendor:瀏覽器的品牌
vendorSub:有關(guān)供應(yīng)商的次要信息
screen對象
javascript中有幾個對象在變成中用處不大,而screen對象就是其中之一。screen對象基本上只用來表明客戶端的能力,其中包括瀏覽器窗口外部顯示器的信息,如像素寬度和高度。
screen.height //屏幕的像素高度
screen.width //屏幕的像素寬度
//等等還有很多屬性但是有的屬性不怎么兼容就不給你大家一一列出來了
系統(tǒng)對話框
alert() :對話框
confirm():警告框
prompt() :對話框
alert('2019年第一天')
confirm('今天是2019年第一天么?')
prompt('今天是2019年第一天么?')