第8章 BOM
8.1 window對象
BOM的核心對象是window摘悴,表示瀏覽器的一個實例舔哪。
全局變量不能通過delete操作符刪除,但直接在window對象上定義的屬性可以绳锅。
嘗試訪問未聲明的變量會報錯飒焦,但通過查詢window對象可以知道某個未聲明變量是否存在。如
var newValue=window.oldValue;//如果oldValue未定義newValue為undefined悼沿。
moveTo()移動到(x,y)位置等舔,和moveBy()移動了(x,y)位置,都可以將窗口移動到新位置糟趾。
resizeTo()調(diào)整瀏覽器窗口為(w,h)大小慌植,resizeBy()縮放了(w,h)大小。
window.open()接收4個參數(shù):要加載的url义郑、窗口目標(biāo)蝶柿、特性字符串、新頁面是否取代瀏覽器歷史記錄中當(dāng)前加載頁的布爾值非驮。
如果瀏覽器內(nèi)置屏蔽程序阻止彈出窗口交汤,window.open()可能返回null。
setTimeout()超時調(diào)用劫笙,接收要執(zhí)行的代碼和等待時間芙扎。
setInterval()間歇調(diào)用。
alert()填大、confirm()戒洼、prompt()
window.print()
window.find()
8.2 location對象
location.search可以訪問url的大多數(shù)信息。
location.assign(“url”)與location.href用法相同栋盹。
location.replace(“url”)不會在歷史記錄生成新紀(jì)錄施逾。
reload()重新加載頁面,reload(true)從服務(wù)器重新加載例获。
navigator.plugins檢測瀏覽器中是否裝了特定插件汉额。典型做法是需要針對每個插件分別創(chuàng)建檢測函數(shù)。
refresh()用于刷新plugins以反映最新安裝的插件榨汤。
registerContentHandler()和registerProtocolHandler()可以讓一個站點指明它可以處理特定類型的信息蠕搜。
screen對象基本只用來表明客戶端的能力。
history.go()可以在用戶歷史紀(jì)錄中任意跳轉(zhuǎn)收壕,負(fù)數(shù)向后(后退)妓灌,正數(shù)向前(前進(jìn))。字符串則跳轉(zhuǎn)到歷史紀(jì)錄中包含該字符串的第一個位置蜜宪,如不包含虫埂,則無效。
back()圃验,forward()
history.length保存著歷史紀(jì)錄數(shù)量掉伏。
第9章 客戶端檢測
9.1 能力檢測
能力檢測主要用于確定瀏覽器支持特定的能力。先檢測達(dá)成目的最常用的特性,再檢測實際用到的特性斧散。
能力檢測對于想知道某個特性是否會按照適當(dāng)方式行事(而不僅僅是存在)非常有用供常。
9.2 怪癖檢測
怪癖檢測主要是識別瀏覽器的特殊行為,主要是想知道瀏覽器存在什么缺陷(即bug)鸡捐。
由于檢測bug涉及代碼栈暇,建議僅檢測有直接影響的bug,最好在一開始就執(zhí)行類似檢測箍镜。
9.3 用戶代理檢測
用戶代理檢測通過檢測用戶代理字符串來確定實際使用的瀏覽器源祈。navigator.userAgent獲取用戶代理字符串。
五大瀏覽器呈現(xiàn)引擎:IE鹿寨、Geocko(如Firefox)新博、WebKit(如Safari薪夕、Chrome)脚草、KHTML(如Konqueror)、Opera原献。
識別呈現(xiàn)引擎馏慨,第一識別Opera,檢測window.opera對象是否存在姑隅;第二識別WebKit写隶,檢測是否包含AppleWebkit字符串;第三識別KHTML讲仰,檢測KHTML或Konqueror字符串慕趴;第四識別Gecko,檢測Gecko是否出現(xiàn)在rv:后面鄙陡;最后檢測IE冕房,檢測MSIE字符串。
識別瀏覽器趁矾,通常檢測瀏覽器代碼與檢測呈現(xiàn)引擎是混在一起的耙册,基本思路是從完整版本號中檢測瀏覽器關(guān)鍵字。
三大主流平臺:Windows毫捣、Mac详拙、Unix(包括各種Linux)。
識別平臺蔓同,使用navigator.platform對象檢測是否包含Win32饶辙、Win64、MacPPC斑粱、MacIntel弃揽、X11、Linux i686。
識別Windows操作系統(tǒng)蹋宦,獲取win空格后的字符串披粟。
識別移動設(shè)備,關(guān)鍵字iPhone冷冗、iPod守屉、iPad、Mobile蒿辙;Android拇泛;NokiaN;CE思灌、Ph等俺叭。
識別游戲系統(tǒng),關(guān)鍵字Wii(任天堂)泰偿、playstation等熄守。