- DOM - Document Object Model
- BOM - Browser Object Model
- BOM提供了獨立于內(nèi)容而與瀏覽器窗口進行交互的對象
- 由于BOM主要用于管理窗口與窗口之間的通訊,因此其核心對象是window
- 瀏覽器窗口交互的一些對象何暮,例如可以移動,調(diào)整瀏覽器大小的window對象贰盗,可以用于導航的location對象與history對象筒愚,可以獲取瀏覽器,操作系統(tǒng)與用戶屏幕信息的navigator與screen對象身冬,可以使用document作為訪問HTML文檔的入口,管理框架的frames對象等
-
window對象是BOM的頂層(核心)對象,所有對象都是通過它延伸出來的茄唐,也可以稱為window的子對象
-
window對象
- BOM的核心對象是window访圃。
- 在瀏覽器中window有雙重角色:JS訪問瀏覽器窗口的一個接口腿时,ECMAScript規(guī)定的Global對象徽鼎。
- moveTo()叹括,moveBy(),resizeTo(),resizeBy()這些基本都被瀏覽器禁用了裹匙。
- 獲取窗口大小瑞凑,不同瀏覽器不同實現(xiàn)
- 導航和打開窗口,window.open()概页。
- 超時調(diào)用籽御、間歇調(diào)用:setTimeout(function,time);setInterval(function,time);
在開發(fā)環(huán)境下,很少真正的使用間歇調(diào)用惰匙,原因是后一個間歇調(diào)用可能會在前一個間歇調(diào)用結(jié)束之前啟動篱蝇。所以用到間歇調(diào)用時都是使用超時調(diào)用間接實現(xiàn)。 - 系統(tǒng)對話框:alert()徽曲,confirm(),prompt()
-
location對象
- location是最有用的BOM對象之一
- 提供了與當前窗口中加載的文檔有關(guān)的信息麸塞,還提供了導航功能
- location對象的特別:既是window的屬性秃臣,又是document的屬性,所以window.location == document.location
- 解析URL部分哪工,location.hash奥此,location.host,location.search等
- 位置操作:
location.assign("http://www.baidu.com"); //跳轉(zhuǎn)到參數(shù)頁面雁比,同時添加瀏覽記錄
location.href = "http://www.baidu.com";
window.location = "http://www.baidu.com";也能達到同樣的效果稚虎,因為這兩個的結(jié)果是調(diào)用assign()方法。 - 注意上面的參數(shù)偎捎,如果沒有http協(xié)議部分蠢终,就是跳轉(zhuǎn)到當前域下的路徑。
- 也可以只修改URL的一部分茴她,例如location.port=8090寻拂,每次修改完會自動觸發(fā)刷新
- location.replace("http://www.baidu.com");使用該方法不會添加歷史記錄,也就有返回按鈕功能
- location.reload();重新加載當前頁丈牢,無參數(shù)是從緩存加載祭钉,帶參數(shù)true強制從服務(wù)器重新請求。
-
navigator對象
- 識別客戶端瀏覽器
- 檢測插件:navigator.plugins
-
screen對象
- js中幾個用處不大的對象之一己沛。
- 屏幕信息
-
history對象
- history.go()
- history.back()
- history.forward()
- history.length