紅寶書 第8章 BOM

2022-09-08 17:15:15 字數 3610 閱讀 5964

bom,瀏覽器物件模型,用於訪問瀏覽器的功能。w3c為了把瀏覽器中

js最基本的部分標準化,已將

bom的主要方面納入

html5

規範。bom的核心,表示瀏覽器例項。在瀏覽器中,

window

物件即是通過

js訪問瀏覽器視窗的乙個介面,又是

ecmascript

規定的global

物件。全域性變數不能通過delete操作符刪除,而直接在

window

物件上定義的屬性可以

var age=29

delete window.age //ie<9丟擲錯誤,在其他瀏覽器返回false

console.log(window.age) // 29

window.color=」red」

delete window.color //ie<9丟擲錯誤,在其他瀏覽器返回true

console.log(window.color) //undefined

頁面包含多個框架,每個框架都會有自己的window物件,並且儲存在frames集合中。

瀏覽器視窗相對於電腦螢幕左邊和上邊的位置

screenleft、screentop:ie、opera、

safari

、chrome

screenx、screeny:firefox、

safari

、chrome(opera中並不對應,建議不再

opera

中使用)

let leftpos = (typeof window.screenleft == 『number』) ? window.screenleft : window.screenx
對於ie、

opera

來說是頁面可見區域相對於螢幕的距離,screentop即工具欄高度,

對於firefox、

safari

、chrome

是整個瀏覽器視窗相對於螢幕的座標值,即無法獲取準確視窗位置

可以用moveto(x,y)螢幕移動到0,0

或moveby(x,y)螢幕向右移動x,向下移動y

不過這兩個又會被瀏覽器禁用。。。。

innerwidth、innerheight:頁面檢視區,減去邊框

outerwidth、outerheight:瀏覽器視窗

或者通過以下方法獲取儲存了頁面視口的資訊

document.documentelement.clientwidth、document.documentelement.clientheight

混雜模式可以用document.body.clientwidth、

document.body.clientheight

可以用resizeto(x,y)(接受瀏覽器視窗的新寬度和新高度)、resizeby(x,y)(新舊視窗寬度和高度差)

window.open(要載入的

url,視窗目標,特性字串,新頁面是否取代瀏覽器歷史記錄中當前載入頁面的布林值

)超時呼叫:settimeout(function(),time)

cleartimeout(timeid)

在指定的時間尚未過去之前呼叫cleartimeout就可以完全取消超時呼叫。上面的**在設定超時呼叫後馬上呼叫了

cleartimeout

,結果就跟什麼都沒發生一樣。

超時呼叫的**都是在全域性作用域執行的,因此this非嚴格模式下指向

window

,嚴格模式下指向

undefined

超時呼叫沒有必要跟蹤超時呼叫id因為每次執行完呼叫就會停止。

間歇呼叫:setinterval(function(){},time)

一般認為,使用超時呼叫來模擬間歇呼叫是一種最佳模式

function fn()  else 

}settimeout(fn, 500);

alert('msg') // 系統對話方塊,只有確定按鈕

confirm('question') // 警告框,有確認和取消,可以通過返回的布林值判斷單擊的是哪個按鈕

if (confirm("are you sure"))  else
prompt("tip", "initvalue"); // 提示框,提示使用者輸入一些文字,返回文字輸入域的值,關閉時返回null

let result = prompt('your name','lpr')

if(result!==null){}else{}

提供了當前視窗中載入的文件有關的資訊,提供了一些導航功能。

即是window物件的屬性,也是

document

物件的屬性,

也就是window.location和

document.location

引用的是同乙個物件

console.log(location.href)     // 完整url

console.log(location.protocol) // 協議

console.log(location.hostname) // 網域名稱(伺服器名稱)

console.log(location.port) // 埠號

console.log(location.pathname) // 目錄和檔名

console.log(location.search) // 查詢字串

console.log(location.hash) // 返回url中的hash

console.log(location.host) // 網域名稱+埠

location.assign('') // 導航到新頁面,在歷史記錄中生成記錄,可返回先前頁面

window.location= '' // 呼叫location.assign

location.href='' // 呼叫location.assign

location.replace('') // 導航到新頁面,不生成記錄,不可返回先前頁面

用於檢測顯示網頁的瀏覽器型別,檢測外掛程式,註冊處理程式

表明客戶端的能力,其中包括瀏覽器視窗外部的顯示器的資訊,如畫素寬度和高度。儲存著與客戶端顯示器有關的資訊,這些資訊一般只用於站點分析。

該物件儲存著使用者上網的歷史記錄,從視窗被開啟的那一刻。

history.go(num)負數表示向後退轉。正數表示向前跳轉。

history.back()後退一頁

history.forward()前進一頁

history.length,儲存著歷史記錄的數量

history.go(『wrox.com』) 當引數為字串時,此時會跳轉到歷史記錄中包含該字元創的第乙個位置,因此可能後退可能前進。如果不包含則什麼都不做。

紅寶書 第17章錯誤處理與除錯

ie firefox safari chrome opera等主流瀏覽器都具有某種向使用者報告js錯誤的機制。預設情況下,所有瀏覽器都會隱藏此類資訊。良好的錯誤處理機制可以讓使用者及時得到提醒。trycatch e try塊中的任何 發生錯誤,就會立即退出 執行過程,然後接著執行catch塊。此時,...

第8章指標

1.指標 指標是儲存記憶體位址的變數。在記憶體中每一塊儲存單元都有相對應的唯一的位址編號,指標就是一塊儲存這種編號的空間 2.對於乙個變數可以用 符號來獲取它的位址 int a int p a 什麼樣的變數,就需要宣告對應的型別的指標。這是為了告訴系統,我從這個位址開始要讀取多少位的記憶體塊,才能正...

第8章 多型

執行時的多型 我們所說的多型一般是執行時的多型。要使用多型,在宣告物件時就應該遵循一條法則 宣告的總是父類型別或介面型別,建立的是實際型別。物件導向的三大特徵 封裝 繼承 多型多型通過分離 做什麼 和 怎麼做 從另外的乙個角度將介面和實現分離開來。封裝通過合併特徵和行為來建立新的資料型別。實現隱藏 ...