關於BOM的學習總結

第四章 瀏覽器對象模(BOM)總結前端

  本章主要講解了瀏覽器對象模型BOM的基本概念,以及windowdocumentlocationnavigatorscreen五個對象的經常使用屬性及方法。node

  其中window對象是BOM的核心,咱們能夠經過windowmoveBy()resizeTo()等方法移動、調節瀏覽器窗口位置、大小。但因爲缺少相應標準,不一樣的瀏覽器在使用該方法時獲得的結果並不同,例如,若使用moveBy(100,100)移動窗口,只有IE下能獲得正確的結果,ChromeFF卻獲得不一樣的結果或者有些狀況下甚至沒有任何效果。值得一提的是,IE提供了window.screenLeftwindow.screenTop對象來判斷瀏覽器窗口位置,在IE8中,這兩個對象獲取的是瀏覽器窗口視口左上角的位置(不包括頂部菜單欄),ChromeFF也支持此屬性,但所獲取的是整個瀏覽器左上角的位置,不過在較新的IE11中,所獲取的位置已經與ChromeFireFox達成了一致。而且window對象的特性字符串也只在IE下可用,例如scrollableresizable等,ChromeFF根本不支持此屬性。瀏覽器

  Window對象下還有一個opener屬性,用於新窗口對打開它的父窗口的引用,可是此屬性在IE8下並不支持。學習

  Window對象下咱們用到較多的兩個方法即是時間暫停setTimeout()和時間間隔setInterval()兩個方法,網頁上的廣告圖片輪播即可以它們來實現。spa

本章中另一個重要的對象即是document。它是惟一一個既屬於BOM又屬於DOM的對象。較爲有意思的是write()方法實際上是屬於BOM下的document的一個方法,這裏也就產生了一個問題,如何區分document的方法和屬性到底屬於BOM仍是DOM呢?書上列舉了documentformsimages集合,但經過document.forms[0]得到的表單的nodeType值爲1,分明是文檔結構模型中的一個元素節點,這二者之間到底有沒有一個明確的區分界限呢?orm

  BOM中另外三個對象locationnavigatorscreen彷佛在平常應用中至關較少。但其實它們仍是有用武之地的,例如,在本次JS打飛機遊戲中,我便經過給「從新開始」按鈕添加一個location.reload()方法來從新加載了頁面。而一樣因爲缺少標準,navigator對象的屬性和方法就造成了一片混亂。Screen對象下的colorDepth方法在IE8下獲得的是顏色位數是32位,而ChromeFF下則是24位,但在IE11下,它也是24位了,這樣的改變對於咱們前端開發人員而言,無疑是一個較大的福音。 對象

  技術的提高不能只靠保守本身的固有資本,樂於分享、善於學習,才能使咱們收穫更多,連微軟均可以改變,咱們爲何不能呢?遊戲

相關文章
相關標籤/搜索