javascript的BOM
javascript的BOM
ECMAScript是 JavaScript的核心,但如果要在 Web中使用 JavaScript,那么 BOM(瀏覽器對(duì)象模型)則無(wú)疑才是真正的核心。BOM 提供了很多對(duì)象,用于訪問(wèn)瀏覽器的功能,這些功能與任何網(wǎng)頁(yè)內(nèi)容無(wú)關(guān)。多年來(lái),缺少事實(shí)上的規(guī)范導(dǎo)致 BOM既有意思又有問(wèn)題,因?yàn)闉g覽器提供商會(huì)按照各自的想法隨意去擴(kuò)展它。于是,瀏覽器之間共有的對(duì)象就成為了事實(shí)上的標(biāo)準(zhǔn)。這些對(duì)象在瀏覽器中得以存在,很大程度上是由于它們提供了與瀏覽器的互操作性。W3C為了把瀏覽器中 JavaScript最基本的部分標(biāo)準(zhǔn)化,已經(jīng)將 BOM的主要方面納入了 HTML5的規(guī)范中。
ps:上面摘抄于《javascript高級(jí)程序設(shè)計(jì)》,BOM是瀏覽器的窗口對(duì)象,提供了很多窗口處理的API。在webapp框架越來(lái)越多的情況下,需要我們?cè)谕淮翱谔幚聿煌?yè)面、不同的ajax數(shù)據(jù),則需要我們熟悉BOM的內(nèi)容。
1、window
BOM 的核心對(duì)象是 window ,它表示瀏覽器的一個(gè)實(shí)例。在瀏覽器中, window 對(duì)象有雙重角色,它既是通過(guò) JavaScript 訪問(wèn)瀏覽器窗口的一個(gè)接口,又是 ECMAScript 規(guī)定的 Global 對(duì)象。


下面是open的第三個(gè)字符串屬性

2、location
location 是最有用的 BOM對(duì)象之一,它提供了與當(dāng)前窗口中加載的文檔有關(guān)的信息,還提供了一些導(dǎo)航功能。事實(shí)上, location 對(duì)象是很特別的一個(gè)對(duì)象,因?yàn)樗仁?window 對(duì)象的屬性,也是document 對(duì)象的屬性;換句話說(shuō), window.location 和 document.location 引用的是同一個(gè)對(duì)象。location 對(duì)象的用處不只表現(xiàn)在它保存著當(dāng)前文檔的信息,還表現(xiàn)在它將 URL 解析為獨(dú)立的片段,讓開(kāi)發(fā)人員可以通過(guò)不同的屬性訪問(wèn)這些片段。

3、history
history 對(duì)象保存著用戶上網(wǎng)的歷史記錄, 從窗口被打開(kāi)的那一刻算起。 因?yàn)?strong> history 是 window對(duì)象的屬性,因此每個(gè)瀏覽器窗口、每個(gè)標(biāo)簽頁(yè)乃至每個(gè)框架,都有自己的 history 對(duì)象與特定的window 對(duì)象關(guān)聯(lián)。出于安全方面的考慮,開(kāi)發(fā)人員無(wú)法得知用戶瀏覽過(guò)的 URL。不過(guò),借由用戶訪問(wèn)過(guò)的頁(yè)面列表,同樣可以在不知道實(shí)際 URL 的情況下實(shí)現(xiàn)后退和前進(jìn)。

4、navigator
最早由 Netscape Navigator 2.0引入的 navigator 對(duì)象,現(xiàn)在已經(jīng)成為識(shí)別客戶端瀏覽器的事實(shí)標(biāo)準(zhǔn)。雖然其他瀏覽器也通過(guò)其他方式提供了相同或相似的信息(例如,IE 中的 window.clientInfor-mation 和 Opera 中的 indow.opera ) ,但 navigator 對(duì)象卻是所有支持 JavaScript 的瀏覽器所共有的。與其他 BOM 對(duì)象的情況一樣,每個(gè)瀏覽器中的 navigator 對(duì)象也都有一套自己的屬性。下圖有navigator比較重要的信息

5、screen
JavaScript 中有幾個(gè)對(duì)象在編程中用處不大,而 screen 對(duì)象就是其中之一。 screen 對(duì)象基本上只用來(lái)表明客戶端的能力,其中包括瀏覽器窗口外部的顯示器的信息,如像素寬度和高度等。每個(gè)瀏覽器中的 screen 對(duì)象都包含著各不相同的屬性,下表列出了所有屬性及支持相應(yīng)屬性的瀏覽器。直接用下面代碼查看下就行了
<!DOCTYPE html> <html> <head> <script> console.log(screen); </script> </head> <body> screen </body> </html>
相關(guān)文章
舉例講解JavaScript中關(guān)于對(duì)象操作的相關(guān)知識(shí)
這篇文章主要介紹了舉例講解javaScript中關(guān)于對(duì)象操作的相關(guān)知識(shí),"一切皆對(duì)象"是學(xué)習(xí)JS過(guò)程中經(jīng)??梢砸?jiàn)到的一句話,本文便用一些小例子來(lái)講解JS中的對(duì)象操作,需要的朋友可以參考下2015-11-11
簡(jiǎn)介JavaScript中的unshift()方法的使用
這篇文章主要介紹了簡(jiǎn)介JavaScript中的unshift()方法的使用,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
Javascript模塊化編程(三)require.js的用法及功能介紹
這個(gè)系列的第一部分和第二部分,介紹了Javascript模塊原型和理論概念,今天介紹如何將它們用于實(shí)戰(zhàn)。我采用的是一個(gè)非常流行的庫(kù)require.js感興趣的朋友可以了解下啊2013-01-01
Javascript SHA-1:Secure Hash Algorithm
Javascript SHA-1:Secure Hash Algorithm...2006-12-12
關(guān)于javascript中的parseInt使用技巧
前面好幾次遇到JavaScript中parseInt函數(shù)把字串轉(zhuǎn)為數(shù)字,前面遇到過(guò)幾次問(wèn)題,然后就換其它方法進(jìn)行比較。2009-09-09
簡(jiǎn)介JavaScript中POSITIVE_INFINITY值的使用
這篇文章主要介紹了簡(jiǎn)介JavaScript中POSITIVE_INFINITY值的使用,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
詳解JavaScript實(shí)現(xiàn)設(shè)計(jì)模式中的適配器模式的方法
適配器模式可以根據(jù)需求轉(zhuǎn)換(或調(diào)整)一個(gè)接口,創(chuàng)建含有您所需接口的另一個(gè)對(duì)象,并將它連接到您想改變接口的對(duì)象,從而完成這種轉(zhuǎn)換,下面就來(lái)詳解JavaScript實(shí)現(xiàn)設(shè)計(jì)模式中的適配器模式的方法2016-05-05

