BOM Browser Object Model, 瀏覽器對象模型瀏覽器
window對象是js中的頂級對象,全部定義在全局做用域中的變量、函數都會變成window對象的屬性和方法,在調用的時候能夠省略window。app
window.open(): 打開新窗口 window.close(): 關閉當前窗口 window.moveTo(): 移動當前窗口 window.resizeTo(): 調整當前窗口的尺寸 window.onload(): 當頁面加載時 window.onscroll(): 當頁面滾動時 window.onresize(): 頁面從新定義大小時
在瀏覽器中,每一個標籤具備本身的 window 對象 。也就是說,同一個窗口的標籤之間不會共享一個 window 對象
若是頁面中包含框架,則每一個框架都擁有本身的 window 對象,而且保存在 frames 集合中。框架
在 frames 集合中,能夠經過數值索引(從0開始,從左至右,從上到下)或者框架名稱來訪問相應的 window 對象。函數
每一個 window 對象都有一個 name 屬性,其中包含框架的名稱。
<frameset> <frame src="frame.htm" name="topFrame"> <frameset cols="50%,50%"> <frame src="a" name="leftFrame"> <frame src="b" name="rightFrame"> </frameset> </frameset>
能夠經過 window.frames[0] 或者 window.frames["topFrame"] 來引用上方的框架。
top
不過最好使用 top 來引用這些框架(top.frames[0]),由於 top 對象始終指向最高(最外)層的框架,也就是瀏覽器窗口。使用它能夠確保在一個框架中正確地訪問另外一個框架。由於對於在一個框架中編寫的任何代碼來講,其中的 window 對象指向的都是那個框架的特定實例,而非最高層的框架。
parent
與 top 相對的另外一個 window 對象是 parent。顧名思義,parent(父)對象始終指向當前框架的直接上層框架。在某些狀況下,parent 有可能等於 top;但在沒有框架的狀況下,parent 必定等於 top(此時它們都等於 window)。
self
與框架有關的最後一個對象是 self,它始終指向 window;實際上,self 和 window 對象能夠互換使用。引入 self 對象的目的只是爲了與 top 和 parent 對象對應起來,所以它不格外包含其餘值。spa
全部這些對象都是 window 對象的屬性,能夠經過 window.parent、window.top 等形式來訪問。同時,這也意味着能夠將不一樣層次的 window 對象連綴起來,例如 window.parent.parent.frames[0]。操作系統
navigator對象就是判斷用戶的瀏覽器以及操做系統。code
navigator.appName: 瀏覽器名稱 navigator.appVersion: 瀏覽器版本 navigator.language: 瀏覽器設置的語言 navigator.platform: 操做系統類型 navigator.userAgent:瀏覽器設定的User-Agent字符串
history forward(): 方法加載歷史列表中的下一個 URL,這與在瀏覽器中點擊後退按鈕是相同的 history.back(): 方法加載歷史列表中的前一個 URL,這與在瀏覽器中點擊前進按鈕是相同的 history.go(): 方法能夠在用戶的歷史記錄中任意跳轉,能夠向後也能夠向前
Screen 對象中存放着有關顯示瀏覽器屏幕的信息。orm
screen.width: 屏幕寬度,以像素爲單位 screen.availWidth: 屏幕的可用寬度,以像素爲單位 screen.height: 屏幕高度,以像素爲單位