BOM (瀏覽器對(duì)象模型(BrowserObjectModel))
BOM(Browser Object Model) 是指瀏覽器對(duì)象模型,是用于描述這種對(duì)象與對(duì)象之間層次關(guān)系的模型,瀏覽器對(duì)象模型提供了獨(dú)立于內(nèi)容的、可以與瀏覽器窗口進(jìn)行互動(dòng)的對(duì)象結(jié)構(gòu)。BOM由多個(gè)對(duì)象組成,其中代表瀏覽器窗口的Window對(duì)象是BOM的頂層對(duì)象,其他對(duì)象都是該對(duì)象的子對(duì)象。
主要功能
1. 彈出新瀏覽器窗口的能力;
2. 移動(dòng)、關(guān)閉和更改瀏覽器窗口大小的能力;
3. 可提供WEB瀏覽器詳細(xì)信息的導(dǎo)航對(duì)象;
4.可提供瀏覽器載入頁(yè)面詳細(xì)信息的本地對(duì)象;
5 .可提供用戶(hù)屏幕分辨率詳細(xì)信息的屏幕對(duì)象;
6. 支持Cookies;
7. Internet Explorer對(duì)BOM進(jìn)行擴(kuò)展以包括ActiveX對(duì)象類(lèi),可以通過(guò)JavaScript來(lái)實(shí)現(xiàn)ActiveX對(duì)象。
交互框
警告框 ------Window.alert()
確認(rèn)框 ------Window.confirm();
詢(xún)問(wèn)框??----- Window.prompt();
窗口調(diào)用
open(url,name,params)--------Params:height=100,width=400,top=0,left=0,toolbar=no,menubar =no,scrollbars=no, resizable=no,location=no, status=no
close()
子窗口調(diào)用父窗口
opener.父窗口方法、屬性
Window.opener.farther_method()
定時(shí)控制
setTimeout()--------- Specifies a delay for calling a function or evaluating an expression.
setInterval()----------- Calls a function or evaluates an expression every time the specified interval elapses.
clearTimeout()–-------Clears a timeout that was set with the setTimeout method.
clearInterval()–--------Clears a delay that was set with the setInterval method.
screen&location
screen
– window.screen.width分辨率寬
– window.screen.height分辨率高
location
– window.location.href=”http://www.baidu.com”
– window.reload(); //刷新
– window.location.href=window.location.href;//刷新
history&navigator
history
window.history.forward()
window.history.back()
window.history.go(num)
navigator
window.navigator.userAgent //獲取瀏覽器信息
DOM模型(Document Object Model):文檔對(duì)象模型,它定義了操作文檔對(duì)象的接口。
結(jié)點(diǎn)
結(jié)點(diǎn)的概念
------在DOM模型中,整個(gè)文檔就是由層次不同的多個(gè)節(jié)點(diǎn) 組成,可以說(shuō)結(jié)點(diǎn)代表了全部?jī)?nèi)容。
結(jié)點(diǎn)的類(lèi)
----------文本節(jié)點(diǎn)和屬性結(jié)點(diǎn)都看作元素結(jié)點(diǎn)的子結(jié)點(diǎn)
----------我們一般所說(shuō)的結(jié)點(diǎn)指的就是元素結(jié)點(diǎn)。
元素結(jié)點(diǎn)的引用
1.獲取元素結(jié)點(diǎn)
1)直接獲取
① document.getElementById()
② document.getElementsByName()
③ document.getElementsByTagName()
2)間接獲取
父子關(guān)系 firstChild lastChild childNodes
子父關(guān)系 parentNode
兄弟關(guān)系 nextSibling previousSibling
2.操作屬性結(jié)點(diǎn)
1)通過(guò)對(duì)象“.”屬性,來(lái)操作屬性 優(yōu):可以動(dòng)態(tài)獲取用戶(hù)修改的屬性值 缺:不能獲取自定義屬性的值
2)getAttribute("key") setAttribute("key","value") removeAttribute("key")
優(yōu):可以獲取自定義屬性的值????
?缺:不能動(dòng)態(tài)獲取用戶(hù)修改的屬性值
3.處理文本結(jié)點(diǎn)
1) 通過(guò)對(duì)象.innerText 獲取標(biāo)簽內(nèi)部的文本信息
2) 通過(guò)對(duì)象.innerHTML 獲取標(biāo)簽內(nèi)部的HTML代碼
4.動(dòng)態(tài)改變DOM結(jié)構(gòu)
1)創(chuàng)建一個(gè)結(jié)點(diǎn)對(duì)象 document.createElement("標(biāo)簽名")
2)(父結(jié)點(diǎn))追加子結(jié)點(diǎn)對(duì)象 fatherNode.appendChild(子結(jié)點(diǎn)對(duì)象)
3)(父結(jié)點(diǎn))在指定結(jié)點(diǎn)前添加子結(jié)點(diǎn) fatherNode.insertBefore(新結(jié)點(diǎn)對(duì)象,參考結(jié)點(diǎn)對(duì)象) 4)(父結(jié)點(diǎn))替換舊的子結(jié)點(diǎn)對(duì)象 fatherNode.replaceChild(新結(jié)點(diǎn)對(duì)象,舊結(jié)點(diǎn)對(duì)象)
5)(父結(jié)點(diǎn))刪除舊子結(jié)點(diǎn)對(duì)象 fahterNode.removeChild(舊結(jié)點(diǎn)對(duì)象)
5.動(dòng)態(tài)改變?cè)氐腸ss樣式
1)我們通過(guò)對(duì)象.style屬性操作對(duì)象的css樣式:樣式名稱(chēng)中有“-”將“-”去掉,并將“-”后一個(gè)字母改為大寫(xiě)來(lái)作為樣式的新名稱(chēng)
2)我們希望通過(guò)class為一個(gè)對(duì)象添加一個(gè)class樣式,添加屬性名是className,而并非class(class是js的關(guān)鍵字,不能作為屬性名存在)