bom,瀏覽器物件模型,用於訪問瀏覽器的功能。w3c為了把瀏覽器中
js最基本的部分標準化,已將
bom的主要方面納入
html5
規範。bom的核心,表示瀏覽器例項。在瀏覽器中,
window
物件即是通過
js訪問瀏覽器視窗的乙個介面,又是
ecmascript
規定的global
物件。全域性變數不能通過delete操作符刪除,而直接在
window
物件上定義的屬性可以
var age=29頁面包含多個框架,每個框架都會有自己的window物件,並且儲存在frames集合中。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
瀏覽器視窗相對於電腦螢幕左邊和上邊的位置
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() elsealert('msg') // 系統對話方塊,只有確定按鈕}settimeout(fn, 500);
confirm('question') // 警告框,有確認和取消,可以通過返回的布林值判斷單擊的是哪個按鈕
if (confirm("are you sure")) elseprompt("tip", "initvalue"); // 提示框,提示使用者輸入一些文字,返回文字輸入域的值,關閉時返回null
let result = prompt('your name','lpr')提供了當前視窗中載入的文件有關的資訊,提供了一些導航功能。if(result!==null){}else{}
即是window物件的屬性,也是
document
物件的屬性,
也就是window.location和
document.location
引用的是同乙個物件
console.log(location.href) // 完整urlconsole.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章 多型
執行時的多型 我們所說的多型一般是執行時的多型。要使用多型,在宣告物件時就應該遵循一條法則 宣告的總是父類型別或介面型別,建立的是實際型別。物件導向的三大特徵 封裝 繼承 多型多型通過分離 做什麼 和 怎麼做 從另外的乙個角度將介面和實現分離開來。封裝通過合併特徵和行為來建立新的資料型別。實現隱藏 ...