【讀書筆記】JavaScript高級程序設(shè)計(第3版)(第8-9章)

第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等熄守。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市耗跛,隨后出現(xiàn)的幾起案子裕照,更是在濱河造成了極大的恐慌,老刑警劉巖调塌,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晋南,死亡現(xiàn)場離奇詭異,居然都是意外死亡羔砾,警方通過查閱死者的電腦和手機(jī)负间,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姜凄,“玉大人政溃,你說我怎么就攤上這事√锤穑” “怎么了玩祟?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長屿聋。 經(jīng)常有香客問我空扎,道長,這世上最難降的妖魔是什么润讥? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任转锈,我火速辦了婚禮,結(jié)果婚禮上楚殿,老公的妹妹穿的比我還像新娘撮慨。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布砌溺。 她就那樣靜靜地躺著影涉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪规伐。 梳的紋絲不亂的頭發(fā)上蟹倾,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機(jī)與錄音猖闪,去河邊找鬼鲜棠。 笑死,一個胖子當(dāng)著我的面吹牛培慌,可吹牛的內(nèi)容都是我干的豁陆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吵护,長吁一口氣:“原來是場噩夢啊……” “哼盒音!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起何址,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤里逆,失蹤者是張志新(化名)和其女友劉穎进胯,沒想到半個月后用爪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胁镐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年偎血,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盯漂。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡颇玷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出就缆,到底是詐尸還是另有隱情帖渠,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布竭宰,位于F島的核電站空郊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏切揭。R本人自食惡果不足惜狞甚,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望廓旬。 院中可真熱鬧哼审,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽篙耗。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蒿往,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工渴肉, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留幽七,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓离福,卻偏偏與公主長得像杖狼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子妖爷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容