ECMASript是javascript的核心. 但如果要在Web中使用javascript, 那么BOM(瀏覽器對象模型)則無疑才是真正的核心. BOM提供了很多對象, 用于訪問瀏覽器的功能. 這些功能與任何網(wǎng)頁內(nèi)容無關(guān). 多年來, 缺少事實(shí)上的規(guī)范導(dǎo)致BOM既有意思又有問題, 因?yàn)闉g覽器提供商會按照各自的想法去擴(kuò)展它. 于是瀏覽器之間共有的對象就成為了事實(shí)上的標(biāo)準(zhǔn). 這些對象在瀏覽器中得以存在, 很大程度上由于它們提供了與瀏覽器的互操作性. W3C為了把瀏覽器中javascript最基本的部分標(biāo)準(zhǔn)化, 已經(jīng)將BOM的主要方面納入了HTML5的規(guī)范中.
BOM
window對象
BOM的核心對象是window, 它表示瀏覽器的一個實(shí)例. 在瀏覽器中, window對象有雙重角色, 它既是通過javascript訪問瀏覽器窗口的一個接口, 又是ECMAScript規(guī)定的Global對象. 這意味著在網(wǎng)頁中定義的任何一個對象, 變量和函數(shù). 都以window作為其Global對象, 因此有權(quán)訪問paeseInt()等方法.
導(dǎo)航和打開窗口open() 方法
定義和用法
open() 方法用于打開一個新的瀏覽器窗口或查找一個已命名的窗口芍瑞。-
語法
window.open(URL,name,features,replace)參數(shù) 描述 URL 一個可選的字符串侯繁,聲明了要在新窗口中顯示的文檔的 URL片酝。如果省略了這個參數(shù)之拨,或者它的值是空字符串拱镐,那么新窗口就不會顯示任何文檔肺蔚。
|name |一個可選的字符串溪窒,該字符串是一個由逗號分隔的特征列表夯接,其中包括數(shù)字闲擦、字母和下劃線慢味,該字符聲明了新窗口的名稱僚祷。這個名稱可以用作標(biāo)記 < a > 和 < form > 的屬性 target 的值。如果該參數(shù)指定了一個已經(jīng)存在的窗口贮缕,那么 open() 方法就不再創(chuàng)建一個新窗口辙谜,而只是返回對指定窗口的引用。在這種情況下感昼,features 將被忽略装哆。|
|features| 一個可選的字符串,聲明了新窗口要顯示的標(biāo)準(zhǔn)瀏覽器的特征定嗓。如果省略該參數(shù)蜕琴,新窗口將具有所有標(biāo)準(zhǔn)特征。在窗口特征這個表格中宵溅,我們對該字符串的格式進(jìn)行了詳細(xì)的說明凌简。|
|replace|一個可選的布爾值。規(guī)定了裝載到窗口的 URL 是在窗口的瀏覽歷史中創(chuàng)建一個新條目恃逻,還是替換瀏覽歷史中的當(dāng)前條目雏搂。支持下面的值:
true - URL 替換瀏覽歷史中的當(dāng)前條目。
false - URL 在瀏覽歷史中創(chuàng)建新的條目寇损。|
窗口關(guān)系以及框架
如果頁面中包含框架, 則每個框架都擁有自己的window對象, 并且保存在frames集合中. 在frames集合中, 可以通過數(shù)值索引(從0開始, 從左至右, 從上到下)或者框架名稱來訪問相應(yīng)的window對象, 每個window對象都有一個name屬性, 其中包含框架的名稱.
更多屬性內(nèi)容請查閱W3Cschool
Navigator 對象
Navigator 對象包含有關(guān)瀏覽器的信息凸郑。
Navigator 對象屬性
屬性 | 描述 |
---|---|
appCodeName | 返回瀏覽器的代碼名。 |
appMinorVersion | 返回瀏覽器的次級版本矛市。 |
appName | 返回瀏覽器的名稱芙沥。 |
appVersion | 返回瀏覽器的平臺和版本信息。 |
browserLanguage | 返回當(dāng)前瀏覽器的語言浊吏。 |
cookieEnabled | 返回指明瀏覽器中是否啟用 cookie 的布爾值而昨。 |
cpuClass | 返回瀏覽器系統(tǒng)的 CPU 等級。 |
onLine | 返回指明系統(tǒng)是否處于脫機(jī)模式的布爾值找田。 |
platform | 返回運(yùn)行瀏覽器的操作系統(tǒng)平臺歌憨。 |
systemLanguage | 返回 OS 使用的默認(rèn)語言。 |
userAgent | 返回由客戶機(jī)發(fā)送服務(wù)器的 user-agent 頭部的值午阵。 |
userLanguage | 返回 OS 的自然語言設(shè)置躺孝。 |
History 對象
History 對象包含用戶(在瀏覽器窗口中)訪問過的 URL。
History 對象是 window 對象的一部分底桂,可通過 window.history 屬性對其進(jìn)行訪問植袍。
方法 | 描述 |
---|---|
back() | 加載 history 列表中的前一個 URL。 |
forward() | 加載 history 列表中的下一個 URL籽懦。 |
go() | 加載 history 列表中的某個具體頁面于个。 |
History 對象方法
方法 | 描述 |
---|---|
back() | 加載 history 列表中的前一個 URL。 |
forward() | 加載 history 列表中的下一個 URL暮顺。 |
go() | 加載 history 列表中的某個具體頁面厅篓。 |
Location 對象
Location 對象包含有關(guān)當(dāng)前 URL 的信息秀存。
Location 對象是 Window 對象的一個部分,可通過 window.location 屬性來訪問羽氮。
Location 對象屬性
屬性 | 描述 |
---|---|
hash | 設(shè)置或返回從井號 (#) 開始的 URL(錨)或链。 |
host | 設(shè)置或返回主機(jī)名和當(dāng)前 URL 的端口號。 |
hostname | 設(shè)置或返回當(dāng)前 URL 的主機(jī)名档押。 |
href | 設(shè)置或返回完整的 URL澳盐。 |
pathname | 設(shè)置或返回當(dāng)前 URL 的路徑部分。 |
port | 設(shè)置或返回當(dāng)前 URL 的端口號令宿。 |
protocol | 設(shè)置或返回當(dāng)前 URL 的協(xié)議叼耙。 |
search | 設(shè)置或返回從問號 (?) 開始的 URL(查詢部分)。 |
每次修改location的屬性(hash除外), 頁面都會以新URL重新加載
Location 對象方法
屬性 | 描述 |
---|---|
assign() | 加載新的文檔粒没。 |
reload() | 重新加載當(dāng)前文檔筛婉。 |
replace() | 用新的文檔替換當(dāng)前文檔。 |