JavaScript BOM

window對象

瀏覽器的一個實例。在瀏覽器中,window對象有雙重角色,既是通過JavaScript訪問瀏覽器窗口的一個接口。

全局作用域

所有在全局作用域中聲明的變量、函數(shù)都會變成window對象的屬性和方法。

全局變量與在window對象上直接定義屬性有一點不同:全局變量不能通過delete操作符刪除,而直接在window對象上的定義的屬性可以。

嘗試訪問未聲明的變量會拋出錯誤,但是通過查詢window對象,可以知道某個可能未聲明的變量是否存在。

var newValue = oldValue;//error

var newValue = window.oldValue;//不會報錯

窗口關(guān)系及框架

如果頁面中包含框架,則每個框架都擁有自己的window對象,并且保存在frames集合中。在frames集合中,可以通過數(shù)值索引或者框架名稱來訪問響應(yīng)的window對象。每個window對象都有一個name屬性,其中包含框架的名稱。

top對象始終指向最高(最外)層的框架,也就是瀏覽器窗口。使用它可以確保在一個框架中正確地訪問另一個框架。因為對于在一個框架中編寫的任何代碼而言,其中的window對象指向的都是那個框架的特定市里,而非最高層的框架。與top相對的另一個window對象是parent。始終指向當(dāng)前框架的直接上層框架。在某些情況下,parent有可能等于top;但在沒有框架的情況下,parent一定等于top。與框架有關(guān)的最后一個對象是self,它始終指向window;實際上,self和window可以胡煌使用。所有這些對象都是window對象的屬性,可以通過window.parent、window.top等形式來訪問。在使用框架的情況下,瀏覽器中會村子多個Global對象。在每個框架中定義的全局變量會自動成為框架中的window對象的屬性。由于每個window對象都包含原生類型的構(gòu)造函數(shù),因此每個框架都有一套自己的構(gòu)造函數(shù),這些構(gòu)造函數(shù)一一對應(yīng),但并不相等。這個問題會影響到對框框架傳遞的對象使用instancof操作符。

窗口位置


IE、Safari、Opera、Chrome:screenLeft、screenTop

FireFox、Safari、Chrome:screenX、screenY

moveTo

moveBy

窗口大小

IE9+、Firefox、Safari、Opera、Chrome:innerWidth、innerHeight、outerWidth、outerHeight。

IE、Firefox、Safari、Opera、Chrome:

document.documemtElement.clientWidth、document.documentElement.clientHeight

resizeTo

resizeBy

導(dǎo)航和打開窗口

使用window.open()方法既可以導(dǎo)航到一個特定的url,也可以打開一個新的瀏覽器窗口。四個參數(shù):要加載的url、窗口目標(biāo)、一個特性字符串以及一個表示新頁面是否取代瀏覽器歷史記錄中當(dāng)前加載頁面的布爾值。通常只需第一個參數(shù)。

如果第二個參數(shù)并不是一個已經(jīng)存在的窗口或框架,那么該方法就會根據(jù)在第三個參數(shù)位置上傳入的字符串創(chuàng)建一個新窗口或新標(biāo)簽頁。如果沒有傳入第三個參數(shù),那么就會打開一個帶有全部默認(rèn)設(shè)置的新瀏覽器窗口。在不打開新窗口的強狂下,會忽略第三個參數(shù)。

調(diào)用close方法可以將打開的窗口關(guān)閉。

間歇調(diào)用和超時調(diào)用

setTimeout:兩個參數(shù),要執(zhí)行的代碼和以毫秒表示的時間。第一個參數(shù)可以是一個包含js代碼的字符串,也可以是一個函數(shù)。返回一個數(shù)值ID,表示超時調(diào)用。這個超時調(diào)用ID是計劃執(zhí)行代碼的唯一標(biāo)識符。可以通過他來取消超時調(diào)用。要取消尚未執(zhí)行的超時調(diào)用計劃,可以調(diào)用clearTimeout方法,并將相應(yīng)的超時調(diào)用ID作為參數(shù)傳遞給他。

setInterval:間歇調(diào)用,參數(shù)同上。

系統(tǒng)對話框

alert、confirm、prompt,顯示這些對話框的時候代碼會停止執(zhí)行,關(guān)掉后繼續(xù)執(zhí)行。

find、print

location對象

既是window對象的屬性,也是document對象的屬性。保存著當(dāng)前文檔的信息,還將url解析為獨立的片段,讓開發(fā)人員可以通過不同的屬性訪問這些片段。

hash:返回url中的hash

host:返回服務(wù)器名稱和端口號

hostname:返回不帶端口號的服務(wù)器名稱

href:返回當(dāng)前加載頁面的 完整url

pathname:返回url中的目錄和(或)文件名

port:返回端口號

protocol:返回頁面使用的協(xié)議

search:返回url的查詢字符串

每次修改location的屬性(hash除外),頁面都會以新url重新加載。

當(dāng)通過上述任何一種方式修改url之后,瀏覽器的歷史記錄中就會生成一條心記錄,因此用戶通過單擊后退蛋妞都會導(dǎo)航到前一個頁面。要禁用這種行為,可以使用replace方法。這個方法值接受一個參數(shù),即要導(dǎo)航到的url;結(jié)果雖然會導(dǎo)致瀏覽器位置改變,但不會在歷史記錄中生成新記錄。在調(diào)用replace之后,不能回到前一個頁面。

reload,重新加載當(dāng)前顯示的頁面。參數(shù)為true,表示從服務(wù)器重新加載。

navigator對象

識別客戶端瀏覽器

appCodeName:瀏覽器名稱

appName:完整的瀏覽器名稱

appVersion:瀏覽器的版本

cookieEnabled:

javaEnabled:

language:

mimeTypes:在瀏覽器中注冊的MIME類型數(shù)組

Platform:平臺

userAgent:瀏覽器的用戶代理字符串

檢測插件

注冊處理程序

screen對象

history對象

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,428評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,024評論 3 413
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,285評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,548評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,328評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,878評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,971評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,098評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,616評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,554評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,725評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,243評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,971評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,361評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,613評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,339評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,695評論 2 370

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

  • BOM是瀏覽器對象模型 Window對象 BOM 的核心對象是window,它表示瀏覽器的一個實例。 在瀏覽器中,...
    shanruopeng閱讀 446評論 0 1
  • ECMAScript 是 JavaScript 的核心,但如果要在 Web 中使用 JavaScript,那么 B...
    劼哥stone閱讀 829評論 2 5
  • ECMASript是javascript的核心. 但如果要在Web中使用javascript, 那么BOM(瀏覽器...
    劉翾閱讀 219評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,775評論 18 139
  • 2017年8月10日 農(nóng)歷六月十九號 星期四 晴 今晚寫日記,我的心情有些沉重。 昨天是時隔多年,第一次拾筆書寫。...
    故園小屋閱讀 1,635評論 0 0