window對(duì)象
是BOM的核心對(duì)象,它表示瀏覽器的一個(gè)實(shí)例。很多全局的JavaScript對(duì)象(如location和navigator)實(shí)際上都是window對(duì)象的屬性
window對(duì)象會(huì)在 <body> 或 <frameset> 每次出現(xiàn)時(shí)被自動(dòng)創(chuàng)建。
窗口的位置(也可以理解為瀏覽器的位置)
- 窗口距離屏幕左邊的位置:screenLeft & screenX
- 窗口距離屏幕上邊的位置:screenTop & screenY
以上兩個(gè)方法都有兼容性問題,可搭配使用
- 窗口的移動(dòng):moveBy(x,y) 移動(dòng)多少像素 & MoveTo(x,y) 移動(dòng)到坐標(biāo)軸位置
這種方法可能被瀏覽器禁用,opera和IE7(及更高版本)默認(rèn)禁用,此方法不適用于框架,只能對(duì)最外層的window對(duì)象使用
窗口大小
- innerWidth、innerHeight、outerWidth、outerHeight
- 遇到IE6兼容性問題,可使用DOM的方式解決(document.documentElement.clientHeight 標(biāo)準(zhǔn)模式 或者 document.body.clientWidth 混淆模式)
沒有文檔聲明則為混淆模式
- resizeTo() 和 resizeBy()
操作基本同上moveTo/By 方法,注意事項(xiàng)亦是
導(dǎo)航和打開窗口
-
window.open()
傳入?yún)?shù)(4):URL、窗口目標(biāo)、一個(gè)特性字符串(新打開窗口的一些屬性設(shè)置)及一個(gè)表示新頁面是否取代瀏覽器歷史記錄中當(dāng)前加載頁面的布爾值
此方法會(huì)返回一個(gè)指向新窗口的引用,即一個(gè)維持母窗口和子窗口的聯(lián)系,母窗口可對(duì)子窗口進(jìn)行一定的操作,如果要切斷這種聯(lián)系,需要將其opener屬性設(shè)置為null
- 現(xiàn)在的瀏覽器對(duì)彈出窗口有一定限制,如果彈出窗口被瀏覽器屏蔽了,其引用為null(window.open()=null),彈窗被屏蔽,但彈窗的相關(guān)信息還是會(huì)顯示
間歇調(diào)用和超時(shí)調(diào)用(定時(shí)器)
- setTimeout 、setInterval
一般認(rèn)為,使用超時(shí)調(diào)用來模仿間歇調(diào)用是一種最佳模式
系統(tǒng)對(duì)話框
- alert() ; confirm() ; prompt()
- window.print() (打印對(duì)話框) ;** window.find()** (查找對(duì)話框)
/__________________________________________ 接下來都是window對(duì)象的成員對(duì)象(如window.location) __________________________________________/
location對(duì)象
location對(duì)象提供了與當(dāng)前窗口中加載的文檔有關(guān)的信息,還提供了一些導(dǎo)航功能,它的所有屬性(如hash)都是可讀可寫的。這個(gè)對(duì)象的強(qiáng)大體現(xiàn)在它可以將URL拆分成幾個(gè)片段供我們使用。
位置操作(網(wǎng)址位置,不是窗口位置)
- assign(url)
更改頁面的網(wǎng)址,并生成一條歷史紀(jì)錄
- replace(url)
更改頁面網(wǎng)址,并禁止返回操作,不會(huì)生成此條瀏覽器記錄(安全性)
- reload()
重新加載頁面,括號(hào)里什么都不填就會(huì)重緩存重新加載頁面,如果加上 true 則從服務(wù)器重新加載;位于reload()后的代碼可能會(huì)出現(xiàn)不執(zhí)行的情況,所以最好放在代碼最后
navigator對(duì)象
此對(duì)象是識(shí)別客戶端瀏覽器的事實(shí)標(biāo)準(zhǔn)。它有一套瀏覽器的屬性可供查看。
檢測插件
- 非IE瀏覽器:利用navigator.plugins[i].name 來檢測是否存在這個(gè)插件
- IE 瀏覽器:使用專有的ActiveXObject類型,創(chuàng)建一個(gè)實(shí)例
plugins集合有個(gè)refresh()方法,可以刷新插件
注冊(cè)處理程序
- registerContentHandler() & registerProtocolHandler()
screen對(duì)象
———
獲取客戶端屏幕信息
history對(duì)象
———
操作瀏覽器的歷史紀(jì)錄