前端開發(fā)必須掌握的BOM對象操作蟆技,這里歸納總結(jié)全了加缘,看看有沒有你不知道的熊楼?

在利用JavaScript進行前端開發(fā)時霹娄,不可避免地要與瀏覽器窗口進行交互能犯。瀏覽器的一些對象,例如可以移動犬耻,調(diào)整瀏覽器大小的window對象踩晶,可以用于導(dǎo)航的location對象與history對象,可以獲取瀏覽器枕磁,操作系統(tǒng)與用戶屏幕信息的navigator與screen對象渡蜻,可以使用document作為訪問HTML文檔的入口,管理框架的frames對象等计济,那么操作這些對象都會用到什么方法或?qū)傩阅厝孜勘疚膶槟氵M行總結(jié)和歸納。

BOM概述

BOM是browser object model的縮寫沦寂,簡稱瀏覽器對象模型

BOM提供了獨立于內(nèi)容而與瀏覽器窗口進行交互的對象学密,主要處理瀏覽器窗口和框架,不過通常瀏覽器特定的 JavaScript 擴展都被看做 BOM 的一部分传藏。這些擴展包括:

1.彈出新的瀏覽器窗口

2.移動腻暮、關(guān)閉瀏覽器窗口以及調(diào)整窗口大小

3.提供 Web 瀏覽器詳細信息的定位對象

4.提供用戶屏幕分辨率詳細信息的屏幕對象

5.對 cookie 的支持

6.IE 擴展了BOM,加入了ActiveXObject 類毯侦,可以通過 JavaScript 實例化 ActiveX 對象

由于BOM主要用于管理窗口與窗口之間的通訊哭靖,因此其核心對象是window

BOM由一系列相關(guān)的對象構(gòu)成,并且每個對象都提供了很多方法與屬性

BOM缺乏標(biāo)準, 是各個瀏覽器廠商根據(jù)DOM在各自瀏覽器上的實現(xiàn)(表現(xiàn)為不同瀏覽器定義有差別,實現(xiàn)方式不同)侈离;JavaScript語法的標(biāo)準化組織是ECMA款青,DOM的標(biāo)準化組織是W3C

BOM最初是Netscape瀏覽器標(biāo)準的一部分

前端交流群:621071874

window對象是BOM的頂層(核心)對象,不是JS對象霍狰,所有對象都是通過它延伸出來的抡草,也可以稱為window的子對象。JavaScript是通過訪問BOM(Browser Object Model)對象來訪問蔗坯、控制康震、修改客戶端(瀏覽器),由于BOM的window包含了document宾濒,window對象的屬性和方法是直接可以使用而且被感知的腿短,因此可以直接使用window對象的document屬性,通過document屬性就可以訪問绘梦、檢索橘忱、修改XHTML文檔內(nèi)容與結(jié)構(gòu)。因為document對象又是DOM(Document Object Model)模型的根節(jié)點卸奉《鄢希可以說,BOM包含了DOM(文檔對象模型)榄棵,瀏覽器提供出來給予訪問的是BOM對象凝颇,從BOM對象再訪問到DOM對象潘拱,從而js可以操作瀏覽器以及瀏覽器讀取到的文檔。

BOM的組成

一拧略、window對象

window對象是BOM的核心芦岂。它具有雙重角色,既是通過js訪問瀏覽器窗口的一個接口垫蛆,又是一個Global(全局)對象禽最。這意味著在網(wǎng)頁中定義的任何對象,變量和函數(shù)袱饭,都以window作為其global對象川无。

全局的window對象

JavaScript中的任何一個全局函數(shù)或變量都是window的屬性

window與self對象

self對象與window對象完全相同,self通常用于確認就是在當(dāng)前的窗體內(nèi)

window的子對象

1.document 對象

2.frames 對象

3.history 對象

4.location 對象

5.navigator 對象

6.screen 對象

window對象的函數(shù)和屬性索引

窗體控制

moveBy() 函數(shù)可相對窗口的當(dāng)前坐標(biāo)把它移動指定的像素

moveTo() 函數(shù)可把窗口的左上角移動到一個指定的坐標(biāo)

resizeBy() 函數(shù)用于根據(jù)指定的像素來調(diào)整窗口的大小

resizeTo() 函數(shù)用于把窗口大小調(diào)整為指定的寬度和高度

screenLeft 和 screenTop屬性返回窗口相對于屏幕的X和Y坐標(biāo)

screenX 和 screenY 屬性返回窗口相對于屏幕的X和Y坐標(biāo)

pageXOffset 和 pageYOffset 屬性設(shè)置或返回當(dāng)前頁面相對于窗口顯示區(qū)左上角的 X 位置宁赤。pageYOffset 設(shè)置或返回當(dāng)前頁面相對于窗口顯示區(qū)左上角的 Y 位置

outerWidth 和 outerHeight 屬性設(shè)置或返回一個窗口的外部寬度(高度)舀透,包括所有界面元素(如工具欄/滾動條)

窗體滾動軸控制

scrollBy() 函數(shù)可把內(nèi)容滾動指定的像素數(shù)

scrollTo() 函數(shù)可把內(nèi)容滾動到指定的坐標(biāo)

提示:上面幾個函數(shù)的名字最后都帶有To或By,to是絕對的意思(從整體而言)决左,by是相對的意思(從原先的位置而言)

窗體焦點控制

focus() 函數(shù)可把鍵盤焦點給予一個窗口

blur() 函數(shù)可把鍵盤焦點從頂層窗口移開

新建窗體

open() 函數(shù)用于打開一個新的瀏覽器窗口或查找一個已命名的窗口

close() 函數(shù)用于關(guān)閉瀏覽器窗口

createPopup() 函數(shù)用來創(chuàng)建一個彈出窗口

opener 屬性是一個可讀可寫的屬性愕够,可返回對創(chuàng)建該窗口的 Window 對象的引用

closed 屬性可返回一個布爾值,該值聲明了窗口是否已經(jīng)關(guān)閉

對話框

alert() 函數(shù)用于顯示帶有一條指定消息和一個 確認 按鈕的警告框

confirm() 函數(shù)用于顯示一個帶有指定消息和確認及取消按鈕的對話框

prompt() 函數(shù)用于顯示可提示用戶進行輸入的對話框

狀態(tài)欄

window.defaultStatus 屬性可設(shè)置或返回窗口狀態(tài)欄中的默認文本佛猛。該屬性可讀可寫

window.status 屬性可設(shè)置或返回窗口狀態(tài)欄中的文本

print() 函數(shù)用于打印當(dāng)前窗口的內(nèi)容

時間等待與間隔

setTimeout() 函數(shù)用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計算表達式

clearTimeout() 函數(shù)可取消由 setTimeout() 方法設(shè)置的 timeout

setInterval() 函數(shù)可按照指定的周期(以毫秒計)來調(diào)用函數(shù)或計算表達式

clearInterval() 函數(shù)可取消由 setInterval() 設(shè)置的 timeout

二惑芭、document對象

document對象用于表現(xiàn)HTML頁面當(dāng)前窗體的內(nèi)容,是window對象的屬性继找,包含了一個節(jié)點對象(該對象包含每個單獨頁面的所有HTML元素遂跟,這就是W3C的DOM對象,由于document對象內(nèi)容比較我婴渡,我們將在后面專門撰寫文章進行講解)幻锁。

三、frames對象

frames對象用于表現(xiàn)HTML頁面當(dāng)前窗體的中的框架集合边臼,是window對象的屬性哄尔。如果頁面使用框架,將產(chǎn)生一個框架集合frames柠并,在集合中可用數(shù)字(從0開始岭接,從左到右,逐行索引)或名字索引框架臼予。

window:當(dāng)前框架

self 屬性可返回對窗口自身的只讀引用

Top 屬性返回當(dāng)前窗口的最頂層瀏覽器窗口

parent 屬性返回當(dāng)前窗口的父窗口

四鸣戴、history對象

history對象用于窗體中的導(dǎo)航,是window對象的屬性粘拾,瀏覽者通痴可以使用瀏覽器的前進與后退按鈕訪問曾經(jīng)瀏覽過的頁面。JavaScript的history對象記錄了用戶曾經(jīng)瀏覽過的頁面半哟,并可以實現(xiàn)瀏覽器前進與后退相似的導(dǎo)航功能酬滤;可以通過back函數(shù)后退一個頁面签餐,forward函數(shù)前進一個頁面寓涨,或者使用go函數(shù)任意后退或前進頁面盯串,還可以通過length屬性查看history對象中存儲的頁面數(shù)。

go() 函數(shù)可加載歷史列表中的某個具體的頁面

back() 函數(shù)可加載歷史列表中的前一個 URL(如果存在)

forward() 函數(shù)可加載歷史列表中的下一個 URL

length 屬性聲明了瀏覽器歷史列表中的元素數(shù)量

五戒良、location對象

location對象用于獲取或設(shè)置窗體的URL并可以用于解析URL体捏。它既是window對象的屬性又是document對象的屬性,包含8個屬性糯崎,其中7個都是當(dāng)前窗體的URL的一部分几缭,剩下的也是最重要的一個是href屬性,代表當(dāng)前窗體的URL沃呢。8個屬性都是可讀寫的年栓,但是只有href與hash的寫才有意義。

assign() 函數(shù)加載一個新的文檔

replace() 函數(shù)可用一個新文檔取代當(dāng)前文檔

reload() 函數(shù)用于刷新當(dāng)前文檔

hash 屬性是一個可讀可寫的字符串薄霜,該字符串是 URL 的錨部分(從 # 號開始的部分)

host 屬性是一個可讀可寫的字符串某抓,可設(shè)置或返回當(dāng)前 URL 的主機名稱和端口號

hostname 屬性是一個可讀可寫的字符串,可設(shè)置或返回當(dāng)前 URL 的主機名

href 屬性是一個可讀可寫的字符串惰瓜,可設(shè)置或返回當(dāng)前顯示的文檔的完整 URL

pathname 屬性是一個可讀可寫的字符串否副,可設(shè)置或返回當(dāng)前 URL 的路徑部分

port 屬性是一個可讀可寫的字符串,可設(shè)置或返回當(dāng)前 URL 的端口部分

protocol 屬性是一個可讀可寫的字符串崎坊,可設(shè)置或返回當(dāng)前 URL 的協(xié)議

search 屬性是一個可讀可寫的字符串备禀,可設(shè)置或返回當(dāng)前 URL 的查詢部分(問號 ? 之后的部分)

navigator對象

navigator對象通常用于檢測瀏覽器與操作系統(tǒng)的版本,是window對象的屬性奈揍。由于navigator沒有統(tǒng)一的標(biāo)準曲尸,因此各個瀏覽器都有自己不同的navigator版本。常用的navigator函數(shù)和屬性有:

taintEnabled() 函數(shù)可返回一個布爾值男翰,該值聲明了當(dāng)前瀏覽器是否啟用了 data tainting

appCodeName 屬性是一個只讀字符串另患,聲明了瀏覽器的代碼名

appName 屬性可返回瀏覽器的名稱

appVersion 屬性可返回瀏覽器的平臺和版本信息。該屬性是一個只讀的字符串

cookieEnabled 屬性可返回一個布爾值奏篙,如果瀏覽器啟用了 cookie柴淘,該屬性值為 true。如果禁用了 cookie秘通,則值為 false

platform 屬性是一個只讀的字符串为严,聲明了運行瀏覽器的操作系統(tǒng)和(或)硬件平臺

userAgent 屬性是一個只讀的字符串,聲明了瀏覽器用于 HTTP 請求的用戶代理頭的值

javaEnabled() 函數(shù)可返回一個布爾值肺稀,該值指示瀏覽器是否支持并啟用了 Java第股。如果是,則返回 true话原,否則返回 false

screen對象

screen對象用于獲取用戶的屏幕信息夕吻,是window對象的屬性诲锹。

width 屬性聲明了顯示瀏覽器的屏幕的寬度,以像素計

height 屬性聲明了顯示瀏覽器的屏幕的高度涉馅,以像素計

availWidth 屬性聲明了顯示瀏覽器的屏幕的可用寬度归园,以像素計。在 Windows 這樣的操作系統(tǒng)中稚矿,這個可用高度不包括分配給半永久特性(如屏幕底部的任務(wù)欄)的垂直空間

availHeight 屬性聲明了顯示瀏覽器的屏幕的可用高度庸诱,以像素計。在 Windows 這樣的操作系統(tǒng)中晤揣,這個可用高度不包括分配給半永久特性(如屏幕底部的任務(wù)欄)的垂直空間

colorDepth 屬性返回目標(biāo)設(shè)備或緩沖器上的調(diào)色板的比特深度

pixelDepth 屬性返回顯示屏幕的顏色分辨率(比特每像素)

話題到這里就結(jié)束了桥爽,web前端學(xué)習(xí)的可以來我的群,群里每天都有對應(yīng)資料學(xué)習(xí):621071874昧识,包括這篇文章的高清圖片钠四,歡迎初學(xué)和進階中的小伙伴。

如果想看到更加系統(tǒng)的文章和學(xué)習(xí)方法經(jīng)驗可以關(guān)注的微信號:‘web前端EDU’或者‘webxh5’關(guān)注后回復(fù)‘2017’可以領(lǐng)取一套完整的學(xué)習(xí)視頻

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末跪楞,一起剝皮案震驚了整個濱河市缀去,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌习霹,老刑警劉巖朵耕,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異淋叶,居然都是意外死亡阎曹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門煞檩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來处嫌,“玉大人,你說我怎么就攤上這事斟湃⊙#” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵凝赛,是天一觀的道長注暗。 經(jīng)常有香客問我,道長墓猎,這世上最難降的妖魔是什么捆昏? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮毙沾,結(jié)果婚禮上骗卜,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好寇仓,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布举户。 她就那樣靜靜地躺著,像睡著了一般遍烦。 火紅的嫁衣襯著肌膚如雪俭嘁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天乳愉,我揣著相機與錄音兄淫,去河邊找鬼屯远。 笑死蔓姚,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慨丐。 我是一名探鬼主播坡脐,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼房揭!你這毒婦竟也來了备闲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤捅暴,失蹤者是張志新(化名)和其女友劉穎恬砂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蓬痒,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡泻骤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了梧奢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狱掂。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖亲轨,靈堂內(nèi)的尸體忽然破棺而出趋惨,到底是詐尸還是另有隱情,我是刑警寧澤惦蚊,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布器虾,位于F島的核電站,受9級特大地震影響蹦锋,放射性物質(zhì)發(fā)生泄漏兆沙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一晕粪、第九天 我趴在偏房一處隱蔽的房頂上張望挤悉。 院中可真熱鬧,春花似錦、人聲如沸装悲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诀诊。三九已至洞渤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間属瓣,已是汗流浹背载迄。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抡蛙,地道東北人护昧。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像粗截,于是被迫代替她去往敵國和親惋耙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容