目 錄
第I部分 JavaScript入門
第1章 JavaScript在萬維網和其他領域所起的作用 3
1.1 Web流量的競爭 4
1.2 其他Web技術 4
1.2.1 超文本標記語言(HTML和
XHTML) 5
1.2.2 CSS 7
1.2.3 服務器編程 7
1.2.4 輔助程序和插件程序 8
1.3 JavaScript是一門綜閤性語言 9
1.3.1 LiveScript蛻變成JavaScript 10
1.3.2 微軟的JavaScript版本 10
1.3.3 JavaScript版本 10
1.3.4 核心語言標準ECMAScript 11
1.4 JavaScript:靈活易用的工具 12
第2章 腳本開發策略 13
2.1 瀏覽器的競爭 13
2.2 相互包容 14
2.3 當今存在的兼容性問題 14
2.3.1 將核心JavaScript語言從文檔
對象中獨立齣來 15
2.3.2 核心語言標準 15
2.3.3 文檔對象模型 16
2.3.4 通過標記打下良好的基礎 17
2.3.5 層疊樣式錶 17
2.3.6 標準兼容模式(DOCTYPE
轉換) 18
2.3.7 動態HTML和定位 19
2.4 開發腳本編寫策略 19
2.4.1 功能降低和漸進增強 19
2.4.2 開發層的分離 20
2.4.3 延伸閱讀 21
第3章 選擇和使用工具 23
3.1 軟件工具 23
3.1.1 選擇文本編輯器 23
3.1.2 選擇瀏覽器 24
3.2 建立編寫環境 24
3.2.1 Windows 25
3.2.2 Mac OS X 25
3.2.3 重載問題 26
3.3 驗證 26
3.4 創建第一個腳本 27
3.4.1 第一步:靜態HTML 27
3.4.2 第二步:連接JavaScript 28
3.4.3 第三步:用CSS指定樣式 29
第4章 JavaScript基礎 31
4.1 閤並JavaScript和HTML 31
4.1.1 <script>標記 31
4.1.2 舊式內聯JavaScript 35
4.1.3 容納不支持JavaScript的用戶
代理 35
4.1.4 隱藏腳本 39
4.1.5 給不同的瀏覽器編寫腳本 40
4.2 兼容性設計 44
4.2.1 處理beta版瀏覽器 44
4.2.2 參考章節中的兼容性等級 45
4.3 資深程序員的語言基礎 46
第Ⅱ部分 JavaScript教程
第5章 第一個JavaScript腳本 53
5.1 第一個腳本的功能 53
5.2 輸入第一個腳本 54
5.2.1 第一步:HTML文檔 54
5.2.2 第二步:添加JavaScript 57
5.2.3 第三步:添加樣式 63
5.3 進行改動 65
5.4 習題 65
第6章 瀏覽器對象和文檔對象 67
6.1 腳本運行初步 67
6.2 使用JavaScript的場閤 68
6.3 文檔對象模型 69
6.3.1 HTML結構和DOM 69
6.3.2 瀏覽器窗口中的DOM 70
6.4 文檔的載入 71
6.4.1 簡單文檔 72
6.4.2 添加段落元素 72
6.4.3 添加段落文本 72
6.4.4 生成新元素 73
6.5 對象引用 73
6.5.1 對象命名 74
6.5.2 引用特定對象 74
6.6 節點術語 75
6.6.1 節點 75
6.6.2 父子節點 76
6.7 對象的定義 76
6.7.1 屬性 76
6.7.2 方法 77
6.7.3 事件 79
6.8 習題 80
第7章 腳本和HTML文檔 83
7.1 把腳本連接到文檔上 83
7.1.1 script標記的位置 84
7.1.2 非JavaScript的瀏覽器和
XHTML 85
7.2 JavaScript語句 86
7.3 腳本語句的執行時間 87
7.3.1 文檔載入時即刻執行 87
7.3.2 延時腳本 88
7.4 查找腳本錯誤 90
7.5 腳本和編程 91
7.6 習題 92
第8章 程序設計基礎(一) 93
8.1 JavaScript語言 93
8.2 處理信息 93
8.3 變量 94
8.3.1 創建變量 94
8.3.2 變量的命名 95
8.4 錶達式和求值 95
8.4.1 腳本中的錶達式 96
8.4.2 錶達式和變量 97
8.5 數據類型轉換 97
8.5.1 將字符串轉換成數值 98
8.5.2 將數字轉換成字符串 99
8.6 操作符 99
8.6.1 算術操作符 99
8.6.2 比較操作符 100
8.7 習題 100
第9章 程序設計基礎(二) 103
9.1 決策和循環 103
9.2 控製結構 103
9.2.1 if結構 104
9.2.2 if ... else結構 104
9.3 重復循環 105
9.4 函數 106
9.4.1 函數的參數 107
9.4.2 變量的作用域 108
9.5 大括號 109
9.6 數組 110
9.6.1 創建數組 110
9.6.2 訪問數組的數據 111
9.6.3 關聯數組 111
9.6.4 數組中的document對象 113
9.7 習題 114
第10章 window和document對象 115
10.1 頂層對象 115
10.2 window對象 115
10.2.1 訪問窗口的屬性和方法 116
10.2.2 創建窗口 117
10.3 window對象的屬性和方法 119
10.3.1 window.alert()方法 119
10.3.2 window.confirm()方法 119
10.3.3 window.prompt()方法 120
10.3.4 load事件 120
10.4 location對象 121
10.5 navigator對象 122
10.6 document對象 122
10.6.1 document.getElementById()
方法 123
10.6.2 document.getElementsByTag
Name()方法 123
10.6.3 document.forms[ ]屬性 124
10.6.4 document. images[ ]屬性 124
10.6.5 document.createElement()和
document.createTextNode()
方法 125
10.6.6 document.write()方法 126
10.7 習題 130
第11章 錶單和錶單元素 131
11.1 form對象 131
11.1.1 將錶單作為對象和容器 133
11.1.2 訪問錶單屬性 134
11.1.3 form.elements[ ]屬性 135
11.2 將錶單控件作為對象 136
11.2.1 與文本相關的輸入對象 136
11.2.2 按鈕輸入對象 139
11.2.3 復選框輸入對象 139
11.2.4 單選輸入對象 141
11.2.5 select對象 143
11.3 用this嚮函數傳遞元素 146
11.4 提交和預驗證錶單 149
11.5 習題 152
第12章 String、Math和Date對象 155
12.1 核心語言對象 155
12.2 String對象 155
12.2.1 連接字符串 156
12.2.2 字符串方法 157
12.3 Math對象 159
12.4 Date對象 160
12.5 日期計算 161
12.6 習題 163
第13章 編寫框架和多窗口腳本 165
13.1 框架:父框架和子框架 165
13.2 傢庭成員之間的引用 167
13.2.1 父到子的引用 167
13.2.2 子到父的引用 167
13.2.3 子到子的引用 168
13.3 有關框架腳本編程的提示 168
13.4 iframe元素簡介 169
13.5 突齣顯示腳注:框架集腳本
示例 169
13.6 多窗口引用 175
13.7 習題 178
第14章 圖像和動態HTML 181
14.1 image對象 181
14.1.1 可互換的圖像 182
14.1.2 圖像的預緩存 182
14.1.3 圖像變換的創建 184
14.2 無需腳本的圖像變換 189
14.3 JavaScript:僞URL 192
14.4 主流的動態HTML技術 193
14.4.1 樣式錶設置的修改 193
14.4.2 通過W3C DOM節點實現
動態內容 193
14.4.3 通過innerHTML屬性實現
動態內容 194
14.5 習題 194
第Ⅲ部分 JavaScript核心語言參考
第15章 String對象 199
15.1 字符串以及數值數據類型 199
15.1.1 簡單字符串 199
15.1.2 建立長字符串變量 200
15.1.3 連接字符串字麵量和
變量 200
15.1.4 特殊的內嵌字符 201
15.2 String對象 202
15.2.1 語法 202
15.2.2 關於String對象 203
15.2.3 屬性 204
15.2.4 解析方法 207
15.3 字符串使用函數 231
15.4 URL字符串編碼及解碼 236
第16章 Math、Number和Boolean
對象 237
16.1 JavaScript中的數值 237
16.1.1 整數和浮點數 237
16.1.2 十六進製和八進製整數 240
16.1.3 將字符串轉換成數值 241
16.1.4 將數值轉換成字符串 242
16.1.5 數值不是數值型時 243
16.2 Math對象 243
16.2.1 語法 243
16.2.2 關於Math對象 243
16.2.3 屬性 244
16.2.4 方法 244
16.2.5 創建隨機數 245
16.2.6 Math對象的快捷引用 246
16.3 Number對象 246
16.3.1 語法 247
16.3.2 關於Number對象 247
16.3.3 屬性 247
16.3.4 方法 248
16.4 Boolean對象 250
16.4.1 語法 250
16.4.2 關於Boolean對象 250
第17章 Date對象 251
17.1 時區和GMT 251
17.2 Date對象 252
17.2.1 創建date對象 253
17.2.2 內部對象的屬性和方法 254
17.2.3 日期方法 254
17.2.4 處理時區 257
17.2.5 字符串日期 257
17.2.6 用於以前瀏覽器的日期
格式 258
17.2.7 更多轉換 259
17.2.8 日期和時間運算 260
17.2.9 計算天數 262
17.2.10 早期瀏覽器中日期的錯誤
和漏洞 266
17.3 在錶單中驗證日期項 267
第18章 Array對象 273
18.1 結構化的數據 273
18.2 創建空數組 274
18.3 填充數組 274
18.4 JavaScript數組創建功能的
增強 276
18.5 刪除數組項 276
18.6 並行數組 277
18.7 多維數組 281
18.8 模擬Hash錶 282
18.9 Array對象的屬性和方法 284
18.9.1 Array對象屬性 285
18.9.2 Array對象的方法 286
18.10 數組包含 311
18.11 解構賦值 312
18.12 與舊瀏覽器的兼容性 313
第19章 JSON — Native JavaScript
Object Notation 315
19.1 JSON的工作原理 315
19.2 收發JSON數據 317
19.3 JSON 對象 318
19.4 安全限製 319
第20章 E4X — Native XML
Processing 321
20.1 XML 321
20.2 ECMAScript for XML
(E4X) 322
20.2.1 使用XML對象 322
20.2.2 在HTML中嵌入E4X 328
20.2.3 方法 328
第21章 控製結構和異常處理 331
21.1 if和if...else判定語句 331
21.1.1 簡單判定 331
21.1.2 (condition)錶達式 332
21.1.3 復雜判定語句 333
21.1.4 嵌套的if…else語句 334
21.2 條件錶達式 336
21.3 switch語句 337
21.4 重復(for)循環 340
21.4.1 使用循環計數器 342
21.4.2 跳齣循環 343
21.4.3 使用continue繼續循環 344
21.5 while循環 345
21.6 do-while循環 346
21.7 遍曆屬性(for-in) 346
21.8 with語句 348
21.9 標簽語句 349
21.10 異常處理 352
21.10.1 異常及錯誤 352
21.10.2 異常機製 353
21.11 使用try-catch-finally結構 353
現實的異常 356
21.12 拋齣異常 356
21.13 error對象 361
21.13.1 語法 361
21.13.2 關於error對象 362
21.13.3 屬性 362
21.13.4 方法 363
第22章 JavaScript操作符 365
22.1 操作符的類彆 365
22.2 比較操作符 366
22.3 不同數據類型的相等比較 367
22.4 結閤操作符 369
22.5 賦值操作符 371
22.6 布爾操作符 373
22.6.1 布爾運算 374
22.6.2 使用布爾操作符 375
22.7 按位操作符 377
22.8 對象操作符 377
22.9 其他操作符 382
22.10 操作符的優先級 384
第23章 函數和自定義對象 387
23.1 Function對象 387
23.1.1 語法 387
23.1.2 關於Function對象 388
23.1.3 創建函數 388
23.1.4 嵌套函數 389
23.1.5 函數的參數 390
23.1.6 屬性 391
23.1.7 方法 395
23.2 函數應用的注意事項 396
23.2.1 調用函數 396
23.2.2 變量的作用域:全局作用域
還是局部作用域 397
23.2.3 參數變量 401
23.2.4 遞歸函數 402
23.2.5 創建函數庫 403
23.2.6 封閉區間 404
23.3 使用麵嚮對象的JavaScript創建
自定義對象 406
23.3.1 對象的具體細節 407
23.3.2 OO例子:行星對象 409
23.3.3 進一步的封裝 412
23.3.4 創建對象數組 412
23.3.5 利用嵌套對象 414
23.3.6 創建對象的最新方法 415
23.3.7 定義對象屬性的提取器和
設置器 415
23.4 麵嚮對象的概念 416
23.4.1 增加原型 417
23.4.2 原型繼承 418
23.4.3 嵌套對象和原型繼承 418
23.5 Object對象 420
23.5.1 語法 420
23.5.2 關於該對象 421
23.5.3 屬性 422
23.5.4 方法 423
第24章 全局函數和語句 425
24.1 函數 426
24.2 語句 435
24.3 WinIE對象 438
24.3.1 ActiveXObject 438
24.3.2 Dictionary 439
24.3.3 Enumerator 440
24.3.4 VBArray 441
第Ⅳ部分 文檔對象參考
第25章 文檔對象模型基礎 445
25.1 對象模型層次結構 445
25.1.1 作為路徑圖的層次結構 446
25.1.2 第一個瀏覽器文檔對象
路徑圖 446
25.2 産生文檔對象的過程 447
25.3 對象的屬性 448
25.4 對象的方法 449
25.5 對象事件處理程序 450
25.6 對象模型概述 451
25.7 基本對象模型 452
25.8 附加圖像的基本對象模型 452
25.9 僅用於Navigator 4的擴展 453
25.9.1 事件捕獲模型 453
25.9.2 層 453
25.10 Internet Explorer 4+擴展 454
25.10.1 HTML元素對象 454
25.10.2 元素包含層次結構 454
25.10.3 層疊樣式錶 455
25.10.4 事件冒泡 456
25.11 Internet Explorer 5+擴展 456
25.12 W3C DOM 457
25.12.1 DOM層 457
25.12.2 規範中恒定不變的
部分 458
25.12.3 W3C DOM不具備的
特性 458
25.12.4 新的HTML慣例 459
25.12.5 新DOM概念 459
25.12.6 W3C DOM的靜態HTML
對象 467
25.12.7 雙嚮事件模型 469
25.13 腳本編程的發展趨勢 470
25.13.1 將內容與腳本分離 470
25.13.2 盡量使用W3C DOM 471
25.13.3 處理事件 471
25.14 標準兼容模式(DOCTYPE
切換) 472
25.15 小結 473
第26章 通用HTML元素對象 475
第27章 window對象和frame
對象 657
27.1 window對象術語 657
27.2 框架 658
27.2.1 創建框架 658
27.2.2 框架對象模型 658
27.2.3 引用框架 660
27.2.4 top和parent 660
27.2.5 防止在其他Web站點的框架
中顯示自己的頁麵 660
27.2.6 確認頁麵載入框架集 661
27.2.7 從有框架轉換為無框架 661
27.2.8 繼承性和封裝性 661
27.2.9 框架的同步 662
27.2.10 空白框架 662
27.2.11 查看框架源代碼 663
27.2.12 框架和frame元素對象 663
27.3 window對象屬性 663
27.3.1 語法 665
27.3.2 關於window對象 665
27.3.3 屬性 667
27.3.4 方法 700
27.3.5 事件處理程序 754
27.4 frame元素對象 759
27.4.1 語法 759
27.4.2 關於frame對象 759
27.4.3 屬性 760
27.5 frameset元素對象 765
27.5.1 語法 765
27.5.2 關於frameset對象 766
27.5.3 屬性 767
27.6 iframe元素對象 771
27.6.1 語法 771
27.6.2 關於iframe對象 772
27.6.3 屬性 772
27.7 popup對象 776
27.7.1 語法 776
27.7.2 關於popup對象 777
27.7.3 屬性 777
27.7.4 方法 778
第28章 location對象和history
對象 781
28.1 location對象 781
28.1.1 語法 782
28.1.2 關於location對象 782
28.1.3 屬性 784
28.1.4 方法 795
28.2 history對象 798
28.2.1 語法 798
28.2.2 關於history對象 798
28.2.3 屬性 799
28.2.4 方法 800
第29章 document對象和body
對象 805
29.1 document對象 806
29.1.1 語法 808
29.1.2 關於document對象 808
29.1.3 屬性 809
29.1.4 方法 848
29.1.5 事件處理程序 870
29.2 body元素對象 871
29.2.1 語法 872
29.2.2 關於body對象 872
29.2.3 屬性 873
29.2.4 方法 877
29.2.5 事件處理程序 879
29.3 TreeWalker對象 879
29.3.1 語法 879
29.3.2 關於TreeWalker對象 879
29.3.3 屬性 880
29.3.4 方法 881
第30章 link和anchor對象 883
第31章 image、area、map和
canvas對象 891
31.1 image和img元素對象 891
31.1.1 語法 892
31.1.2 關於image對象 893
31.1.3 屬性 894
31.1.4 事件處理程序 908
31.2 area元素對象 910
31.2.1 語法 910
31.2.2 關於area對象 911
31.2.3 屬性 912
31.3 map元素對象 913
31.3.1 語法 914
31.3.2 關於map對象 914
31.3.3 屬性 914
31.4 canvas元素對象 917
31.4.1 語法 918
31.4.2 關於canvas對象 918
31.4.3 屬性 921
31.4.4 方法 923
第32章 event對象 927
32.1 事件 927
32.1.1 事件的內容和事件發生
時間 928
32.1.2 靜態event對象 928
32.2 事件傳播 929
32.2.1 僅用於NN4的事件傳播 929
32.2.2 IE4+事件傳播 931
32.2.3 W3C事件傳播 935
32.3 引用事件對象 941
32.4 綁定事件 942
32.4.1 使用標記特性綁定事件 942
32.4.2 使用對象特性綁定事件 943
32.4.3 使用IE附加功能綁定
事件 944
32.4.4 通過W3C監聽器綁定
事件 944
32.4.5 跨瀏覽器的事件綁定解決
方案 945
32.5 事件對象兼容性 946
32.6 事件模型詳析 948
32.6.1 以跨平颱方式檢查
修改鍵 948
32.6.2 以跨平颱方式捕獲按鍵 950
32.7 事件類型 951
32.7.1 IE4+和NN6+/W3C中的事件
類型 952
32.7.2 語法 954
32.7.3 關於event對象 955
32.7.4 屬性 955
32.8 NN6+/Moz的event對象 974
32.8.1 語法 975
32.8.2 關於event對象 975
32.8.3 屬性 976
32.8.4 方法 994
附錄A JavaScript和瀏覽器對象快速
參考 997
附錄B 本書配套光盤內容 1011
· · · · · · (
收起)