概念
BOM(Browser Object Model) 是指瀏覽器對(duì)象模型改淑,瀏覽器對(duì)象模型提供了獨(dú)立于內(nèi)容的、可 以與瀏覽器窗口進(jìn)行互動(dòng)的對(duì)象結(jié)構(gòu)分俯。BOM 由多個(gè)對(duì)象組成投队,其中代表瀏覽器窗口的 Window 對(duì)象是 BOM 的頂層對(duì)象,其他對(duì)象都是該對(duì)象的子對(duì)象。我們?cè)跒g覽器中的一些操作都可以使用BOM的方式進(jìn)行編程處理棋枕,比如:刷新瀏覽器白修、后退、前進(jìn)戒悠、在瀏覽器中輸入U(xiǎn)RL等熬荆。
window對(duì)象
window 對(duì)象是瀏覽器的頂級(jí)對(duì)象,當(dāng)調(diào)用 window 下的屬性和方法時(shí)绸狐,可以省略 window卤恳。
注意:window下兩個(gè)特殊的屬性 window.name、window.top寒矿。name屬性為預(yù)定義好的屬性突琳,如果定義同名的全局變量,只會(huì)在原有屬性上進(jìn)行賦值符相,且只能是字符串格式的值拆融。而top屬性相當(dāng)于一個(gè)指向的是頂層對(duì)象window的指針,并且是只讀的啊终,不可更改镜豹。
對(duì)話框
- 警示框:alert();
- 提示框:prompt();
- 確定或取消:confirm();
confirm方法有返回值,點(diǎn)擊確定返回true蓝牲,點(diǎn)擊取消返回false
在實(shí)際工作中比較少使用對(duì)話框趟脂,對(duì)話框彈出后會(huì)阻擋后續(xù)程序加載,不同瀏覽器存在彈出后樣式不同例衍,以及不關(guān)閉彈框則無法關(guān)閉頁(yè)面的問題昔期。
加載事件
我們可以給 window 對(duì)象或者 <img> 等元素添加 onload 加載事件,表示只有綁定事件的元 素加載完畢才能觸發(fā)事件佛玄,才能執(zhí)行事件函數(shù)硼一。
其中 window 對(duì)象加載完畢:指的是所有HTML結(jié)構(gòu)加載完,并且外部引入資源(js梦抢、css般贼、img、 視頻)也加載完畢奥吩。
利用 window.onload 事件哼蛆,可以將 js 代碼提前到 html 結(jié)構(gòu)之前。
注意:一個(gè)頁(yè)面中只能有一個(gè) window.onload 事件圈驼。
延時(shí)器與清除延時(shí)器
延時(shí)器是 window 對(duì)象的一個(gè)方法人芽,類似于定時(shí)炸彈。
語法:window.setTimeout(func,time);
第一個(gè)參數(shù):延時(shí)執(zhí)行的函數(shù)绩脆,可以是匿名函數(shù)定義萤厅,或者是一個(gè)函數(shù)名的引用橄抹,注意不要加 () 。
第二個(gè)參數(shù):延時(shí)的時(shí)間惕味,以毫秒計(jì)數(shù)楼誓,1000 毫秒等于 1 秒。
功能:在指定的時(shí)間后名挥,延遲執(zhí)行一個(gè)函數(shù)疟羹。
清除延時(shí)器是 window 對(duì)象的一個(gè)方法。
語法:window.clearTimeout(timeout);
參數(shù):指定的延時(shí)器變量名引用禀倔。
功能:清除指定的延時(shí)器榄融。
注意:清除的延時(shí)器需要將延時(shí)器存儲(chǔ)到一個(gè)變量中,便于后期清除調(diào)用救湖。
定時(shí)器與清除定時(shí)器
定時(shí)器是 window 對(duì)象的一個(gè)方法愧杯,相當(dāng)于定時(shí)鬧鐘,每隔固定的時(shí)間響一次
語法:window.setInterval(func,interval);
第一個(gè)參數(shù):每次執(zhí)行的函數(shù)鞋既,可以是匿名函數(shù)定義力九,或者是一個(gè)函數(shù)名的引用,注意不要 加 () 邑闺。
第二個(gè)參數(shù):時(shí)間間隔跌前,以毫秒計(jì)數(shù),1000 毫秒等于 1 秒陡舅。
功能:每隔一個(gè)指定的時(shí)間抵乓,周期性的執(zhí)行一個(gè)函數(shù)。
清除定時(shí)器是 window 對(duì)象的一個(gè)方法
語法:window.clearInterval(timer);
參數(shù):指定的定時(shí)器變量名引用蹭沛。
功能:清除指定的定時(shí)器臂寝。
注意:清除的定時(shí)器需要存儲(chǔ)到一個(gè)變量中章鲤,便于后期清除調(diào)用摊灭。
location 對(duì)象
location 對(duì)象是 window 對(duì)象下的一個(gè)屬性,使用的時(shí)候可以省略 window 對(duì)象败徊,可以獲取或者設(shè)置瀏覽器地址欄的 URL 帚呼。
可以使用 chrome 的控制臺(tái)查看 location 對(duì)象成員,也可以查詢 Location - Web API 接口參考 | MDN (mozilla.org)
常見屬性方法 | 說明 |
---|---|
href | 用于輸出URL地址皱蹦,重新賦值煤杀,可以跳轉(zhuǎn)到新頁(yè)面,并且記錄歷史location.;
|
assign() | 委派沪哺,作用 與 href 屬性一樣沈自,可以設(shè)置頁(yè)面跳轉(zhuǎn)的地址location.assign("http://www.lagou.com");
|
replace() | 替換,用于替換掉地址欄中當(dāng)前的網(wǎng)址辜妓,但是不記錄歷史location.replace("http://www.lagou.com");
|
reload() | 重新加載枯途,類似鍵盤中 f5 功能,類似于false效果忌怎, ctrl+f5 強(qiáng)制刷新,從服務(wù)器獲取頁(yè)面酪夷,相當(dāng)于 true 的效果榴啸。 參數(shù):true 強(qiáng)制從服務(wù)器獲取頁(yè)面,false 如果瀏覽器有緩存網(wǎng)頁(yè)的話晚岭,會(huì)直接從緩存中獲取頁(yè)面鸥印。 |
URL
統(tǒng)一資源定位符 (Uniform Resource Locator, URL)
URL的組成:scheme://host:port/path?query#fragment
例如:http://www.lagou.com:80/a/b/index.html?name=zs&age=18#bottom
名稱 | 說明 |
---|---|
scheme | 通信協(xié)議,常用的http,ftp,maito等 |
host | 主機(jī)坦报,服務(wù)器(計(jì)算機(jī))域名系統(tǒng) (DNS) 主機(jī)名或 IP 地址库说。 |
port | 端口號(hào),整數(shù)片择,可選璃弄,省略時(shí)使用方案的默認(rèn)端口,如http的默認(rèn)端口為80构回。 |
path | 路徑夏块,由零或多個(gè)'/'符號(hào)隔開的字符串,一般用來表示主機(jī)上的一個(gè)目錄或文件地址纤掸。 |
query | 查詢脐供,可選,用于給動(dòng)態(tài)網(wǎng)頁(yè)傳遞參數(shù)借跪,可有多個(gè)參數(shù)政己,用'&'符號(hào)隔開,每個(gè)參數(shù) 的名和值用'='符號(hào)隔開掏愁。例如:name=zs |
fragment | 信息片斷歇由,字符串,錨點(diǎn). |
history 對(duì)象
history 對(duì)象是 window 對(duì)象下的一個(gè)屬性果港,使用的時(shí)候可以省略 window 對(duì)象沦泌,可以與瀏覽器歷史記錄進(jìn)行交互,瀏覽器歷史記錄是對(duì)用戶所訪問的頁(yè)面按時(shí) 間順序進(jìn)行的記錄和保存。
back()
返回至上一頁(yè)面;
forward()
前進(jìn)到下一頁(yè)面伐割;
go()
傳入整數(shù)參數(shù)作為跳轉(zhuǎn)次數(shù)盒蟆,正數(shù)為前進(jìn)次數(shù),負(fù)數(shù)為后退次數(shù)。