內容介紹
JavaScript是Web開發中最重要的一門語言,它強大而優美。無論是桌面開發,還是移動套用。JavaScript都是必須掌握的技術。W3C的DOM標準是開發Web套用的基石。已經得到所有現代瀏覽器的支持,這使得跨平台Web開發成了一件輕鬆愜意的事。本書是超級暢銷書的升級版,由倡導Web標準的領軍人物執筆,揭示了前端開發的真諦,是學習JavaScript和DOM開發的必讀之作。
本 書在簡潔明快地講述JavaScript和DOM的基本知識之後,通過幾個實例演示了專業水準的網頁開發技術,透徹闡述了平穩退化等一批至關重要的 JavaScript編程原則和最佳實踐,並全面探討了HTML5以及jQuery等JavaScript庫。讀者將看到JavaScript、 HTML5和CSS如何協作來創建易用的、與標準兼容的Web設計,掌握使用JavaScript和DOM通過客戶端動態效果和用戶控制的動畫來加強 Web頁面的必備技術;同時,還將對如何利用庫提高開發效率有全面深入的理解。
作者介紹
Jeremy Keith國際知名的Web設計師,Web標準項目組成員,DOM Scripting任務組負責人之一,任職於Web諮詢公司Clearleft。除本書外,還著有HTML5 for Web Designers、Bulletproof Ajax。可通過其個人網站adactio.com與他聯繫。Jeffrey Sambells 資深平面設計師,Web開發人員,創辦了軟體公司We-Create並擔任研發總監。除本書外,還著有《JavaScript高級程式設計》和 Beginning Google Maps Applications with PHP and Ajax等多部暢銷書。
作品目錄
第1章 JavaScript簡史 11.1 JavaScript的起源 1
1.2 DOM 2
1.3 瀏覽器戰爭 3
1.3.1 DHTML 3
1.3.2 瀏覽器之間的衝突 3
1.4 制定標準 4
1.4.1 瀏覽器以外的考慮 4
1.4.2 瀏覽器戰爭的結局 5
1.4.3 嶄新的起點 5
1.5 小結 6
第2章 JavaScript語法 8
2.1 準備工作 8
2.2 語法 10
2.2.1 語句 10
2.2.2 注釋 10
2.2.3 變數 11
2.2.4 數據類型 14
2.2.5 數組 16
2.2.6 對象 18
2.3 操作 19
2.4 條件語句 21
2.4.1 比較操作符 22
2.4.2 邏輯操作符 23
2.5 循環語句 24
2.5.1 while循環 24
2.5.2 for循環 25
2.6 函式 26
2.7 對象 29
2.7.1 內建對象 30
2.7.2 宿主對象 31
2.8 小結 31
第3章 DOM 32
3.1 文檔:DOM中的“D” 32
3.2 對象:DOM中的“O” 32
3.3 模型:DOM中的“M” 33
3.4 節點 35
3.4.1 元素節點 35
3.4.2 文本節點 35
3.4.3 屬性節點 36
3.4.4 CSS 36
3.4.5 獲取元素 38
3.4.6 盤點知識點 42
3.5 獲取和設定屬性 43
3.5.1 getAttribute 43
3.5.2 setAttribute 44
3.6 小結 45
第4章 案例研究:JavaScript圖片庫 46
4.1 標記 46
4.2 JavaScript 48
4.2.1 非DOM解決方案 49
4.2.2 最終的函式代碼清單 50
4.3 套用這個JavaScript函式 50
4.4 對這個函式進行擴展 52
4.4.1 childNodes屬性 53
4.4.2 nodeType屬性 54
4.4.3 在標記里增加一段描述 54
4.4.4 用JavaScript改變這段描述 55
4.4.5 nodeValue屬性 56
4.4.6 firstChild和lastChild屬性 56
4.4.7 利用nodeValue屬性刷新這段描述 57
4.5 小結 60
第5章 最佳實踐 61
5.1 過去的錯誤 61
5.1.1 不要怪罪JavaScript 61
5.1.2 Flash的遭遇 62
5.1.3 質疑一切 63
5.2 平穩退化 63
5.2.1 “javascript:”偽協定 64
5.2.2 內嵌的事件處理函式 65
5.2.3 誰關心這個 65
5.3 向CSS學習 66
5.3.1 結構與樣式的分離 66
5.3.2 漸進增強 67
5.4 分離JavaScript 68
5.5 向後兼容 70
5.5.1 對象檢測 70
5.5.2 瀏覽器嗅探技術 71
5.6 性能考慮 72
5.6.1 儘量少訪問DOM和儘量減少標記 72
5.6.2 合併和放置腳本 73
5.6.3 壓縮腳本 73
5.7 小結 74
第6章 案例研究:圖片庫改進版 75
6.1 快速回顧 75
6.2 它支持平穩退化嗎 76
6.3 它的JavaScript與HTML標記是分離的嗎 77
6.3.1 添加事件處理函式 77
6.3.2 共享onload事件 82
6.4 不要做太多的假設 84
6.5 最佳化 86
6.6 鍵盤訪問 88
6.7 把JavaScript與CSS結合起來 90
6.8 DOM Core和HTML-DOM 93
6.9 小結 94
第7章 動態創建標記 96
7.1 一些傳統方法 96
7.1.1 document.write 96
7.1.2 innerHTML屬性 98
7.2 DOM方法 101
7.2.1 createElement方法 101
7.2.2 appendChild方法 102
7.2.3 createTextNode方法 103
7.2.4 一個更複雜的組合 105
7.3 重回圖片庫 107
7.3.1 在已有元素前插入一個新元素 108
7.3.2 在現有方法後插入一個新元素 109
7.3.3 圖片庫二次改進版 111
7.4 Ajax 114
7.4.1 XMLHttpRequest對象 115
7.4.2 漸進增強與Ajax 119
7.4.3 Hijax 120
7.5 小結 121
第8章 充實文檔的內容 122
8.1 不應該做什麼 122
8.2 把“不可見”變成“可見” 123
8.3 內容 123
8.3.1 選用HTML、XHTML還是HTML5 124
8.3.2 CSS 126
8.3.3 JavaScript 127
8.4 顯示“縮略語列表” 127
8.4.1 編寫displayAbbreviations函式 128
8.4.2 創建標記 130
8.4.3 一個瀏覽器“地雷” 135
8.5 顯示“文獻來源連結表” 138
8.6 顯示“快捷鍵清單” 143
8.7 檢索和添加信息 146
8.8 小結 147
第9章 CSS-DOM 148
9.1 三位一體的網頁 148
9.1.1 結構層 148
9.1.2 表示層 148
9.1.3 行為層 149
9.1.4 分離 150
9.2 style屬性 150
9.2.1 獲取樣式 151
9.2.2 設定樣式 156
9.3 何時該用DOM腳本設定樣式 158
9.3.1 根據元素在節點樹里的位置來設定樣式 158
9.3.2 根據某種條件反覆設定某種樣式 161
9.3.3 回響事件 165
9.4 className屬性 167
9.5 小結 171
第10章 用JavaScript實現動畫效果 172
10.1 動畫基礎知識 172
10.1.1 位置 172
10.1.2 時間 175
10.1.3 時間遞增量 175
10.1.4 抽象 178
10.2 實用的動畫 184
10.2.1 提出問題 184
10.2.2 解決問題 186
10.2.3 CSS 187
10.2.4 JavaScript 189
10.2.5 變數作用域問題 192
10.2.6 改進動畫效果 193
10.2.7 添加安全檢查 196
10.2.8 生成HTML標記 198
10.3 小結 200
第11章 HTML5 201
11.1 HTML5簡介 201
11.2 來自朋友的忠告 203
11.3 幾個示例 204
11.3.1 Canvas 205
11.3.2 音頻和視頻 209
11.3.3 表單 215
11.4 HTML5還有其他特性嗎 219
11.5 小結 219
第12章 綜合示例 220
12.1 項目簡介 220
12.1.1 原始資料 220
12.1.2 站點結構 220
12.1.3 頁面結構 221
12.2 設計 222
12.3 CSS 223
12.3.1 顏色 225
12.3.2 布局 226
12.3.3 版式 228
12.4 標記 229
12.5 JavaScript 230
12.5.1 頁面突出顯示 231
12.5.2 JavaScript幻燈片 235
12.5.3 內部導航 239
12.5.4 JavaScript圖片庫 242
12.5.5 增強表格 245
12.5.6 增強表單 249
12.5.7 壓縮代碼 263
12.6 小結 264
附錄 JavaScript庫 265