這篇文章將為大家詳細講解有關(guān)BOM怎么在JavaScript項目中應(yīng)用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
臨渭區(qū)網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),臨渭區(qū)網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為臨渭區(qū)上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的臨渭區(qū)做網(wǎng)站的公司定做!
BOM基礎(chǔ)
我們先來看一個BOM的最基礎(chǔ)功能:打開、關(guān)閉窗口:
無標(biāo)題文檔
open方法用于打開一個窗口,相對的close方法用于關(guān)閉一個窗口。這里我們可以用open方法實現(xiàn)一個應(yīng)用:運行代碼。
在這之前,我們要給大家補充一個關(guān)于document.write的小知識。
無標(biāo)題文檔
打開源碼可以發(fā)現(xiàn),當(dāng)我們點擊了按鈕后,整個頁面的源碼就只剩下了“abc”——也就是說,如果document.write如果放在事件里面使用,會先將頁面完全清空再重寫。
可以看到,我們的運行代碼案例,使用document.write方法是非常合適的:
無標(biāo)題文檔
其中_blank代表新打開一個窗口(在本窗口打開用_self),about:blank代表打開的是一個空白窗口,然后我們使用document.write向新窗口寫入html,就可以在新窗口運行html代碼了。
講完open后,我們來說說close的一些問題。close的使用非常簡單,使用window.close便可以執(zhí)行關(guān)閉窗口的事件。但是在火狐瀏覽器下,是無法close一個用戶打開的窗口,只有一個窗口是用open方法打開的時候才能用close方法關(guān)閉。
講完open和close方法后,我們來說兩個常用的屬性:window.nevigator.userAgent和window.location。前者的作用是獲取當(dāng)前瀏覽器的版本信息,后者的作用是獲取當(dāng)前網(wǎng)頁的地址(不僅可以讀取,也可以賦值,可以通過修改location跳轉(zhuǎn)當(dāng)前網(wǎng)頁的網(wǎng)址),大家可以使用一下看看返回的內(nèi)容,這里就不再列舉了。
尺寸及坐標(biāo)
這里我們討論一下JS關(guān)于尺寸和坐標(biāo)的內(nèi)容。
首先要提到的就是關(guān)于可視區(qū)尺寸的知識。什么是可視區(qū)尺寸呢?其實就是用戶端能在屏幕上看到網(wǎng)頁部分的尺寸??梢晠^(qū)的尺寸會隨著窗口的大小而變化。
通過document.documentElement.clientWidth和document.documentElement.clientHeight
可以獲取當(dāng)前頁面可視區(qū)的寬度和高度。
無標(biāo)題文檔
效果如下:
此外針對可視區(qū),還有一個屬性叫scrollTop,也就是滾動距離,或者說是可視區(qū)到頁面頂端的距離。
無標(biāo)題文檔
效果如下:
//這里有圖
值得注意的是document.documentElement.scrollTop
僅僅在ie下兼容,在chrome下的寫法則為document.body.scrollTop
,因此我們用||方法處理兼容問題。
常用方法和事件
這里我們嘗試使用除fixed以外的另一種方法實現(xiàn)元素的固定定位(fixed在ie6下不兼容)。
這里我們再畫一張圖:
可以看得出,只要我們將黑線的長度計算出來,就可以將右下方的div塊進行固定定位了。而黑線的長度正好等于可視區(qū)高度減去div塊的offsetHeight。
無標(biāo)題文檔
效果如下:
可以看到我們的div塊有輕微的抖動,因為onscroll函數(shù)一直在發(fā)生,每發(fā)生一次便會調(diào)用一次,所以會發(fā)生這種情況。此外還存在一個更嚴(yán)重的情況:如果我們改變窗口大小,div塊并不會跟著走而是保持在原地,因此我們還要用到另一個事件——
window.onresize(頁面大小改變時觸發(fā)的事件:):
window.onscroll=window.onresize=function (){...}
最后我們來說說幾個常用的系統(tǒng)對話框:
alert("內(nèi)容") 警告框,沒有返回值
confirm("提問的內(nèi)容") 選擇框,會給確定或取消選項,返回一個boolean
prompt("提示文字","默認(rèn)文字") 會彈出一個可輸入的文本框,返回值為輸入的文本內(nèi)容(字符串),不輸入則為null
關(guān)于BOM怎么在JavaScript項目中應(yīng)用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。