第Ⅰ部分JavaScript入门 3
第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教程 53
第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.confiirm()方法 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 核心语言参考 199
第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-fimally结构 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
第Ⅳ部分文档对象参考 445
第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