?? BOM的基本應用包括:管理瀏覽器歷史、解析地址和獲取瀏覽器信息,本文將介紹這些應用。
## 一、瀏覽歷史管理
?????????? 1、history對象的方法和屬性
???????????????? History 對象包含用戶(在瀏覽器窗口中)訪問過的 URL,是 window 對象的一部分,可通過 window.history 屬性對其進行訪問。沒有應用于 History 對象的公開標準,不過所有瀏覽器都支持該對象。
???????????????? length屬性:返回瀏覽器歷史列表中的URl數量。是"前進“和”后退“兩個按鈕之下包含的地址數的總和。
???????????????? back([num]):加載 history 列表中的前一個 URL。參數num表示后退的地址步數,若沒有定義num,效果等價于點擊后退按鈕或調用 history.go(-1)。
???????????????? forward():加載 history 列表中的下一個 URL。該方法的效果等價于點擊前進按鈕或調用 history.go(1)。
???????????????? go([location]):加載history列表中的location位置的頁面,location可以是字符串或者整數。若是字符串,表示是要訪問歷史列表中的某個 URL,或 URL 的子串;若是整數,表示是要訪問的 URL 在 History 的 URL 列表中的相對位置,正數是前進,負數是后退,0表示刷新當前網頁,與location.reload()等效
?????????? 2、HTML 5 BOM新增功能
??????????? HTML 5 BOM新增了兩個方法和一個屬性:
??????????? window.history.pushState(data,title[,url]):添加新的瀏覽歷史項。data定義歷史記錄的數據,title定義歷史記錄的標題,URL定義歷史記錄的URL地址。觸發popstate事件。
????????????window.history.replaceState(data,title[,url]):更新當前歷史瀏覽項。參數同上。觸發popstate事件。
?????????????state屬性:返回上述兩個方法添加的信息。
## 二、解析地址
?????? location對象描述的是一個窗口對象打開的URL地址。使用window.location可以返回一個location對象(window可以省略)。表示當前窗口的地址,可以用alert(location)獲取;若要表示某一個窗口的地址,則要用”窗口對象名.location“獲取URL。
??????? var newWin = window.open("http://www.baidu.com","_target");
??????? alert(newWin.location);
???????
?????? 1、location對象的屬性:

?????? 2、location對象的方法

HTML5新增一個resolveURL(sURL):將相對的URL轉為絕對的URL
~~~
document.write("書簽名稱: "+location.hash+"<br/>");
document.write("主機全稱: "+location.host+"<br/>");
document.write("主機名稱: "+location.hostname+"<br/>");
document.write("路徑名稱: "+location.pathname+"<br/>");
document.write("連接端口名稱: "+location.port+"<br/>");
document.write("協議名稱: "+location.protocol+"<br/>");
document.write("查詢字符串: "+location.search+"<br/>");
~~~
結果:

三、獲取瀏覽器信息
?????? Navigator 對象包含有關瀏覽器的信息,其對象實例唯一,可以用 Window 對象的 navigator 屬性來引用它。沒有應用于 navigator 對象的公開標準,不過所有瀏覽器都支持該對象。
?????? 1、遍歷Navigator對象成員
????????????? 使用window.navigator屬性可以返回一個Navigator對象,使用for..in循環可以檢測
~~~
for(var i in window.navigator)
{
document.write(i + "==="+window.navigator[i]+"<br/>");
}
~~~
在不同的瀏覽器中運行結果不同,在google中結果如下

?????? 2、Navigator對象屬性:

?????? 3、Navigator對象的方法

| ? | ? |
|-----|-----|
四、非標準應用---screen對象
?????? Screen 對象包含有關客戶端顯示屏幕的信息。每個 Window 對象的 screen 屬性都引用一個 Screen 對象。沒有應用于 screen 對象的公開標準,不過所有瀏覽器都支持該對象。其屬性:

- 前言
- 一
- 二:變量
- 三:數據運算
- 四:流程控制
- 五:內建的全局函數
- 六:自定義函數
- 七:面向對象編程(OOP)
- 八:靜態成員、靜態類、枚舉、重載和覆蓋
- 九:原型鏈本質論
- 十:ECMAScript 5 增強的對象模型
- 十一:處理字符串---String類和正則表達式
- 十二:數組、多維數組和符合數組(哈希映射)
- 十三:處理日期和時間
- 十四:JavaScript內建類
- 十五:BOM之源---window對象
- 十六:BOM之源---BOM基本應用
- 十七:BOM新成就(1)--客戶端存儲數據(Storage實現)
- 十八:BOM新成就(1)--客戶端存儲數據(Web SQL DataBase實現)
- 十九--HTML5 DOM新標準---處理文檔元信息和管理交互能力
- 二十---XMLHttpRequest和AJAX解決方案