对BOM的总结
參考:JavaScript半知半解 TG著
BOM對(duì)象
Window對(duì)象是客戶端JavaScript程序的全局對(duì)象。
Window對(duì)象使得JavaScript與瀏覽器進(jìn)行交互。
所有的JavaScript全局對(duì)象,函數(shù)以及變量均自動(dòng)成為window對(duì)象的屬性和方法。
Document對(duì)象也是window對(duì)象的成員。
Window對(duì)象方法與瀏覽器交互的方法:
計(jì)時(shí)器
SetTimeOut()和SetInterval(),兩個(gè)參數(shù),一個(gè)是重復(fù)執(zhí)行的代碼,另外一個(gè)是重復(fù)的毫秒數(shù),需要注意的是,這兩個(gè)函數(shù)都會(huì)返回一個(gè)值,類似計(jì)時(shí)器ID,分別可以用clearTimeOut()與clearInterval()來(lái)取消執(zhí)行。
注意:如果以0毫秒的超時(shí)時(shí)間來(lái)調(diào)用setTimeout(),那么指定的函數(shù)不會(huì)立刻執(zhí)行。?相反,會(huì)把它放到隊(duì)列中,等到前面處
于等待狀態(tài)的事件處理程序全部執(zhí)行完成后,再“立即”調(diào)用它。
瀏覽器的定位與導(dǎo)航
Window對(duì)象的location屬性引用了Location對(duì)象,與document中的location屬性引用的對(duì)象相同。它表示窗口中當(dāng)前顯示的文檔的URL,并提供了方法來(lái)載入新的文檔。
Location的功用是可以解析當(dāng)前URL,分離出相關(guān)的信息,作為相關(guān)屬性:當(dāng)我們需要網(wǎng)址的時(shí)候:window.herf屬性可以獲取,同樣的屬性包括協(xié)議、主機(jī)、域名、端口。。等等根據(jù)需要查詢文檔。
需要注意的是以上屬性都是可寫的,在更改之后會(huì)按照我們更改的信息載入一個(gè)新的文檔。
以上是屬性部分,下面是location對(duì)象的一些方法:
?
location.assign()?:使窗口載入并顯示指定的URL中的文檔。
location.replace()?:和assign()方法類似,但它在載入新文檔之前會(huì)從瀏覽歷史中把當(dāng)前文檔刪除。?這樣“后退”按鈕就不會(huì)把瀏覽器帶回到原始文檔。
location.reload()?:重新載入當(dāng)前文檔,可傳入一個(gè)布爾值為參數(shù),默認(rèn)false。?如果為true,則優(yōu)先從服務(wù)器重新加載;否則優(yōu)先從本地緩存中重新加載。
純粹的片斷標(biāo)識(shí)符是相對(duì)URL的一種類型,它不會(huì)讓瀏覽器載入新文檔,而是使瀏覽器滾動(dòng)到文檔的某個(gè)位置。
注意:#top標(biāo)識(shí)符是個(gè)特殊值:如果文檔中沒有元素的ID是“top”,它會(huì)讓瀏覽器滾動(dòng)到文檔開始處。location?=?'#top';?//跳轉(zhuǎn)到文檔的頂部
瀏覽歷史
Window對(duì)象的history屬性引用的是該窗口的History對(duì)象:History對(duì)象是用來(lái)把窗口瀏覽歷史用文檔和文檔狀態(tài)列表的形式
表示。
History對(duì)象的length屬性表示瀏覽歷史表中的元素?cái)?shù)量。?比如你在當(dāng)前窗口訪問了三個(gè)不同的網(wǎng)址,那么history.length就等于3
相關(guān)方法:
back():移動(dòng)到上一個(gè)訪問頁(yè)面,等同于瀏覽器的后退鍵。
forward():移動(dòng)到下一個(gè)訪問頁(yè)面,等同于瀏覽器的前進(jìn)鍵。
go():接受一個(gè)整數(shù)作為參數(shù),移動(dòng)到該整數(shù)指定的頁(yè)面,比如go(1)相當(dāng)于forward(),go(-1)相當(dāng)于back()。
如果移動(dòng)的位置超出了訪問歷史的邊界,以上三個(gè)方法并不報(bào)錯(cuò),而是默默的失敗
history.go(0)相當(dāng)于刷新當(dāng)前頁(yè)面。
TUDO
瀏覽器相關(guān)信息
?
Window對(duì)象的navigator屬性引用的是包含瀏覽器產(chǎn)商和版本信息的Navigator對(duì)象
屬性:
appName:Web瀏覽器的全稱
appVersion:此屬性通常以數(shù)字開始,并跟著包含瀏覽器產(chǎn)商和版本信息的詳細(xì)字符串。?字符串前面的數(shù)字通常是4.0或5.0,表示它是第4或第5代兼容的瀏覽器。
userAgent:屬性返回瀏覽器的User-Agent字符串,標(biāo)示瀏覽器的廠商和版本信息。?它包含了appVersion中的所有信息:
用此屬性可以判斷是否為手機(jī)瀏覽器,在哪個(gè)平臺(tái)。//利用返回的數(shù)據(jù)根據(jù)正則表達(dá)式來(lái)判斷。
Platform:返回操作系統(tǒng)信息
onLine:返回瀏覽器是否鏈接到網(wǎng)絡(luò)
Geolocation:返回一個(gè)Geolocation對(duì)象,包含用戶地理位置信息。
方法:
javaEnabled()javaEnabled方法返回一個(gè)布爾值,表示瀏覽器是否能運(yùn)行Java?Applet小程序。
cookieEnable()cookieEnabled方法返回一個(gè)布爾值,表示瀏覽器是否能儲(chǔ)存Cookie。
瀏覽器屏幕相關(guān)信息
Window對(duì)象的screen屬性引用的是Screen對(duì)象,它提供有關(guān)窗口顯示的大小和可用的顏色數(shù)量的信息。
屬性:
Width:整個(gè)屏幕寬度
Height:整個(gè)屏幕高度
availHeight,availWidth:返回屏幕可用的高度和寬度,單位為像素。?它們的值為屏幕的實(shí)際大小減去操作系統(tǒng)某些功能占據(jù)的空間,比如系統(tǒng)的任務(wù)欄
?
colorDepth:返回屏幕的顏色深度,一般為16(表示16-bit)或24(表示24-bit)。
對(duì)話框:。
alert()?:向用戶顯示一條消息并等待用戶關(guān)閉對(duì)話框。
confirm()?:同樣顯示一條消息,要求用戶單擊“確認(rèn)”或“取消”按鈕,并返回一個(gè)布爾值。
prompt()?:同樣顯示一條消息,等待用戶輸入字符串,并返回這個(gè)字符串。
這三個(gè)方法都具有堵塞效應(yīng),一旦彈出對(duì)話框,整個(gè)頁(yè)面就是暫停執(zhí)行,等待用戶做出反應(yīng)。
錯(cuò)誤處理:
Window對(duì)象的onerror屬性是一個(gè)事件處理程序,當(dāng)未捕獲的異常傳播到調(diào)用棧上時(shí)就會(huì)調(diào)用它,并把錯(cuò)誤信息輸出到瀏覽器的JavaScript控制臺(tái)上。
多窗口和多窗體:
由于網(wǎng)頁(yè)可以使用?<iframe>?嵌套多個(gè)網(wǎng)頁(yè),因此一個(gè)網(wǎng)頁(yè)之中會(huì)形成多個(gè)窗口。?另一情況是,子網(wǎng)頁(yè)之中又嵌入別的網(wǎng)頁(yè),形成多級(jí)窗口。?每個(gè)窗口的Window對(duì)象都是獨(dú)立的,互不干擾。
瀏覽器提供了一些特殊變量,用來(lái)返回其他窗口。
top:頂層窗口,?即最上層的那個(gè)窗口
parent:父窗口
self:當(dāng)前窗口,?即自身
下面的代碼可以判斷當(dāng)前窗口是否是頂層窗口
window.top?===?window.self
與這些變量對(duì)應(yīng),?瀏覽器還提供一些特殊的窗口名,?供open方法、?`<a>`標(biāo)簽、?`<form>`標(biāo)簽等引用。
_top:頂層窗口
_parent:父窗口
_blank:新窗口
打開和關(guān)閉窗口:
使用Window對(duì)象的open()方法可以打開一個(gè)新的瀏覽器窗口。?Window.open()載入指定的URL到新的或已存在的窗口中,并
返回代表那個(gè)窗口的Window對(duì)象。
open方法一共可以接受四個(gè)參數(shù)。
第一個(gè)參數(shù):字符串,表示新窗口的網(wǎng)址。?如果省略,默認(rèn)網(wǎng)址就是?about:blank?。
第二個(gè)參數(shù):字符串,表示新窗口的名字。?如果該名字的窗口已經(jīng)存在,則跳到該窗口,不再新建窗口。?如果省略,就默認(rèn)
使用_blank,表示新建一個(gè)沒有名字的窗口。
第三個(gè)參數(shù):字符串,內(nèi)容為逗號(hào)分隔的鍵值對(duì),表示新窗口的參數(shù),比如有沒有提示欄、?工具條等等。?如果省略,則默認(rèn)
打開一個(gè)完整UI的新窗口。
第四個(gè)參數(shù):布爾值,表示第一個(gè)參數(shù)指定的網(wǎng)址,是否應(yīng)該替換history對(duì)象之中的當(dāng)前網(wǎng)址記錄,默認(rèn)值為false。?顯然,
這個(gè)參數(shù)只有在第二個(gè)參數(shù)指向已經(jīng)存在的窗口時(shí),才有意義。
window.close方法用于關(guān)閉當(dāng)前窗口,一般用來(lái)關(guān)閉window.open方法新建的窗口。
modal.close();
窗體:
窗體是通過?<iframe>?元素創(chuàng)建的,我們可以像獲取其他元素一樣,獲取一個(gè)表示?<iframe>?的元素對(duì)象,同時(shí),
<iframe>?元素有?contentWindow?屬性,引用該窗體的Window對(duì)象。
<iframe?id='f'></iframe>
var?f?=?document.getElementById('f');
var?win?=?f.contentWindow;?//子窗體的Window對(duì)象
var?doc?=?f.contentDocument;?//等同于f.contentWindow.document
//獲取子窗體的變量和屬性
f.funciton()
F.title
?
轉(zhuǎn)載于:https://www.cnblogs.com/lumaoxin/p/7010747.html
總結(jié)
- 上一篇: php响应超过三十秒会报错么,如何捕捉致
- 下一篇: Proteus仿真:行列式键盘