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