本節(jié)重點(diǎn)
- BOM 模型的主要應(yīng)用 windows對(duì)象模型 + location對(duì)象 + history對(duì)象
1. windows對(duì)象模型
每個(gè)新打開(kāi)的窗口都有自己的window對(duì)象

window 對(duì)象下的六大屬性也都是對(duì)象
-
window的主要屬性
window的主要屬性 -
window的主要方法
window的主要方法 -
系統(tǒng)對(duì)話框
alert() / confirm() / prompt()alert() 彈出警告對(duì)話框
confirm() 可以點(diǎn)擊確定或者取消(得到相應(yīng)的 ture 或 false)
-
prompt() 提示框,可以得到返回值
var num = prompt('請(qǐng)輸入一個(gè)數(shù)字', 0); alert(num); print(); 得到打印對(duì)話框
find(); 得到查找對(duì)話框
-
瀏覽器的底部狀態(tài)值(系統(tǒng)屬性)
defaultStatus = '狀態(tài)欄默認(rèn)文本'; //瀏覽器底部狀態(tài)欄初始默認(rèn)值 status = '狀態(tài)欄文本 '; //瀏覽器底部狀態(tài)欄設(shè)置值
-
window.open() 新建瀏覽器窗口
-
window.open() 接收四個(gè)參數(shù)
第一個(gè): 需要加載的 URL 地址 第二個(gè): 窗口的名稱/窗口的目標(biāo) 第三個(gè): 表示瀏覽器特性的字符串 第四個(gè): boolean 值 (表示取代當(dāng)前正在進(jìn)行的頁(yè)面) 第三個(gè)字符串參數(shù)的傳值
-
| 設(shè)置 | 值 | 說(shuō)明 |
|---|---|---|
| width | 數(shù)值 | 新窗口的寬度 ,不能小于100 |
| height | 數(shù)值 | 新窗口的高度, 不能小于100 |
| top | 數(shù)值 | 新窗口的坐標(biāo), 不能為負(fù)值 |
| left | 數(shù)值 | 新窗口的坐標(biāo), 不能為負(fù)值 |
| location | yes/no | 在瀏覽器中是否顯示地址欄 |
| menubar | yes/no | 在瀏覽器中是否顯示菜單欄 |
| resizable | yes/no | 是否可以拖動(dòng)改變?yōu)g覽器的大小 |
| scrollbars | yes/no | 是否為溢出的內(nèi)容顯示瀏覽器的滾動(dòng)條 |
| status | yes/no | 是否顯示瀏覽器下面的狀態(tài)欄 |
| toolbar | yes/no | 是否顯示瀏覽器的工具欄 |
- 第三個(gè)參數(shù)的設(shè)置:
open('http://www.baidu.com','baidu','width=400,height=400,top=200,left=200,toolbar=yes');
-
窗口的位置和大小
-
窗口的位置信息
screenLeft 和 screenTop //IE 支持屬性 screenX 和 screenY //firefox 支持屬性 -
窗口的 大小 信息
innerWidth 和 innerHeight //返回瀏覽器窗口的尺寸 outerWidth 和 outerHeight //瀏覽器窗口 + 邊框的尺寸IE中的尺寸獲取
document.documentElement.clientWidth document.documentElement.clientHeight
-
-
間歇調(diào)用和超時(shí)調(diào)用
-
超時(shí)調(diào)用
var timeOut = setTimeout(function(){},time);說(shuō)明:超時(shí)調(diào)用返回一個(gè)數(shù)值信息 timeOut,表示該超時(shí)調(diào)用的 ID
clearTimeout(timeOut); //可以通過(guò)該 ID 信息清除超時(shí)調(diào)用 -
間歇調(diào)用
var interval = setInterval(function(){},time);間歇調(diào)用表示每隔 time 時(shí)長(zhǎng)的時(shí)間調(diào)用一次,反復(fù)執(zhí)行
因?yàn)殚g歇調(diào)用是反復(fù)執(zhí)行的 所以在必要的時(shí)候清除間歇調(diào)用是非常必要的
說(shuō)明:間歇調(diào)用返回?cái)?shù)值信息interval,表示間歇調(diào)用的 ID clearTimeout(interval); //清除間歇調(diào)用 -
使用超時(shí)調(diào)用模擬間歇調(diào)用
一般認(rèn)為,使用超時(shí)調(diào)用來(lái)模擬間歇調(diào)用是一種最佳模式 。在開(kāi)發(fā)環(huán)境下,很少使用真 正的間歇調(diào)用,因?yàn)樾枰鶕?jù)情況來(lái)取消 ID,并且可能造成同步的一些問(wèn)題,我們建議不使用間歇調(diào)用,而去使用超時(shí)調(diào)用。
var num = 0; var max = 5; function timeOut() { num++; if (num == max) { alert('5 秒后結(jié)束!'); } else { setTimeout(box, 1000); } } setTimeout(timeOut,1000);
-
2. Location 對(duì)象
window.location 和 document.location 等效。大家想想為什么呢??
- location對(duì)象的屬性 (獲取當(dāng)前瀏覽器的URL)
| 屬性 | 描述的URL的內(nèi)容 |
|---|---|
| hash | 若存在,表示錨點(diǎn)部分 |
| host | 主機(jī)名 : 端口號(hào) |
| hostname | 主機(jī)名 |
| href | 整個(gè)URL |
| pathname | 路徑名 |
| port | 端口號(hào) |
| search | 查詢字符串(包括傳遞的參數(shù)等等) |
- Location對(duì)象的方法
| 方法 | 功能 |
|---|---|
| assign("url") | 跳轉(zhuǎn)到指定的 URL,與 href 等效 |
| reload() | 重載當(dāng)前的url , 無(wú)參數(shù) |
| replace("url") | 用新的 URL 替換當(dāng)前的 URL. |
3. history 對(duì)象
保存著用戶上網(wǎng)的記錄,從窗口被打開(kāi)的那一刻算起。
- history 對(duì)象的屬性
| 屬性 | 描述 URL 中的部分 |
|---|---|
| length | 描述當(dāng)前的歷史記錄中的個(gè)數(shù) |
- history 對(duì)象的方法
| 屬性 | 實(shí)現(xiàn)的功能 |
|---|---|
| back() | 向前一個(gè)歷史記錄,類似后退 |
| forword() | 向后一個(gè)歷史記錄 , 類似前進(jìn) |
| go(num) | 根據(jù)參數(shù)設(shè)置向前或者向后 |

