BOM

window對(duì)象


是BOM的核心對(duì)象,它表示瀏覽器的一個(gè)實(shí)例。很多全局的JavaScript對(duì)象(如location和navigator)實(shí)際上都是window對(duì)象的屬性

window對(duì)象會(huì)在 <body> 或 <frameset> 每次出現(xiàn)時(shí)被自動(dòng)創(chuàng)建。

窗口的位置(也可以理解為瀏覽器的位置)
  • 窗口距離屏幕左邊的位置:screenLeft & screenX
  • 窗口距離屏幕上邊的位置:screenTop & screenY

以上兩個(gè)方法都有兼容性問題,可搭配使用

  • 窗口的移動(dòng):moveBy(x,y) 移動(dòng)多少像素 & MoveTo(x,y) 移動(dòng)到坐標(biāo)軸位置

這種方法可能被瀏覽器禁用,opera和IE7(及更高版本)默認(rèn)禁用,此方法不適用于框架,只能對(duì)最外層的window對(duì)象使用

窗口大小
  • innerWidth、innerHeight、outerWidth、outerHeight
  • 遇到IE6兼容性問題,可使用DOM的方式解決(document.documentElement.clientHeight 標(biāo)準(zhǔn)模式 或者 document.body.clientWidth 混淆模式)

沒有文檔聲明則為混淆模式

  • resizeTo() 和 resizeBy()

操作基本同上moveTo/By 方法,注意事項(xiàng)亦是

導(dǎo)航和打開窗口
  • window.open()
    傳入?yún)?shù)(4):URL、窗口目標(biāo)、一個(gè)特性字符串(新打開窗口的一些屬性設(shè)置)及一個(gè)表示新頁面是否取代瀏覽器歷史記錄中當(dāng)前加載頁面的布爾值

此方法會(huì)返回一個(gè)指向新窗口的引用,即一個(gè)維持母窗口和子窗口的聯(lián)系,母窗口可對(duì)子窗口進(jìn)行一定的操作,如果要切斷這種聯(lián)系,需要將其opener屬性設(shè)置為null

  • 現(xiàn)在的瀏覽器對(duì)彈出窗口有一定限制,如果彈出窗口被瀏覽器屏蔽了,其引用為null(window.open()=null),彈窗被屏蔽,但彈窗的相關(guān)信息還是會(huì)顯示
間歇調(diào)用和超時(shí)調(diào)用(定時(shí)器)
  • setTimeout 、setInterval

一般認(rèn)為,使用超時(shí)調(diào)用來模仿間歇調(diào)用是一種最佳模式

系統(tǒng)對(duì)話框
  • alert() ; confirm() ; prompt()
  • window.print() (打印對(duì)話框) ;** window.find()** (查找對(duì)話框)

/__________________________________________ 接下來都是window對(duì)象的成員對(duì)象(如window.location) __________________________________________/

location對(duì)象


location對(duì)象提供了與當(dāng)前窗口中加載的文檔有關(guān)的信息,還提供了一些導(dǎo)航功能,它的所有屬性(如hash)都是可讀可寫的。這個(gè)對(duì)象的強(qiáng)大體現(xiàn)在它可以將URL拆分成幾個(gè)片段供我們使用。

位置操作(網(wǎng)址位置,不是窗口位置)
  • assign(url)

更改頁面的網(wǎng)址,并生成一條歷史紀(jì)錄

  • replace(url)

更改頁面網(wǎng)址,并禁止返回操作,不會(huì)生成此條瀏覽器記錄(安全性)

  • reload()

重新加載頁面,括號(hào)里什么都不填就會(huì)重緩存重新加載頁面,如果加上 true 則從服務(wù)器重新加載;位于reload()后的代碼可能會(huì)出現(xiàn)不執(zhí)行的情況,所以最好放在代碼最后

navigator對(duì)象


此對(duì)象是識(shí)別客戶端瀏覽器的事實(shí)標(biāo)準(zhǔn)。它有一套瀏覽器的屬性可供查看。

檢測插件
  • 非IE瀏覽器:利用navigator.plugins[i].name 來檢測是否存在這個(gè)插件
  • IE 瀏覽器:使用專有的ActiveXObject類型,創(chuàng)建一個(gè)實(shí)例

plugins集合有個(gè)refresh()方法,可以刷新插件

注冊(cè)處理程序
  • registerContentHandler() & registerProtocolHandler()

screen對(duì)象

———
獲取客戶端屏幕信息

history對(duì)象

———
操作瀏覽器的歷史紀(jì)錄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容