第一部分Web脚本编写与JavaScript语言的概念 3
第1章 了解JavaScript 3
1.1学习Web脚本编写基础 3
1.1.1脚本和程序 4
1.1.2 JavaScript简介 4
1.2在网页中如何嵌入JavaScrip 5
1.2.1 JavaScript和HTML 5
1.2.2使用单独的JavaScript文件 7
1.2.3事件 7
1.3浏览器和JavaScript 8
1.3.1文档对象模型(DOM) 8
1.3.2 Intedet Explorer 8
1.3.3 Netscape和Firefox 8
1.3.4其他浏览器 9
1.3.5 JavaScript的版本 9
1.4指定JavaScript的版本 10
1.5 JavaScript在浏览器之外的应用 10
1.6 JavaScript功能一览 11
1.6.1改善导航功能 11
1.6.2验证表单 11
1.6.3特殊效果 11
1.6.4 AJAX 11
1.7 JavaScript的替代技术 11
1.7.1 Java 12
1.7.2 ActiveX 12
1.7.3 VBScript 12
1.7.4 CGI和服务器端脚本技术 13
1.8小结 13
1.9问题与解答 13
1.10测试题 14
1.11测试题答案 14
1.12练习题 15
第2章 创建简单的脚本 17
2.1脚本编写的工具 17
2.1.1文本编辑器 18
2.1.2浏览器 19
2.2在JavaScript中显示时间 19
2.3开始编写脚本 19
2.4添加JavaScript语句 20
2.4.1在变量中存储数据 20
2.4.2计算结果 20
2.5创建输出 21
2.6在网页中添加脚本 21
2.7测试脚本 22
2.7.1修改脚本 23
2.7.2处理JavaScript中的错误 24
2.8实践练习:使用一个单独的JavaScript文件 26
2.9小结 27
2.10问题与解答 27
2.11测试题 28
2.12测试题答案 28
2.13练习题 28
第3章 开始JavaScript编程 29
3.1基本概念 29
3.1.1语句 29
3.1.2用函数来组合任务 30
3.1.3变量 30
3.1.4理解对象 30
3.1.5条件语句 31
3.1.6 循环语句 31
3.1.7事件处理程序 32
3.1.8最先运行哪个脚本 33
3.2 JavaScript语法规则 33
3.2.1区分大小写 33
3.2.2变量、对象和函数的名称 33
3.2.3保留字 34
3.2.4空格 34
3.3使用注释 34
3.4编写JavaScript的好习惯 34
3.5实践练习:使用事件处理程序 35
3.6小结 36
3.7问题与解答 36
3.8测试题 37
3.9测试题答案 37
3.10练习题 38
第4章 使用文档对象模型(DOM) 39
4.1认识文档对象模型 39
4.1.1 DOM的历史 40
4.1.2 DOM的分级标准 40
4.2使用window对象 41
4.3处理Web文档 41
4.3.1获得文档的信息 41
4.3.2在文档中写入文字 42
4.3.3使用link和anchor对象 43
4.4访问浏览器的history对象 43
4.5使用location对象 44
4.6实践练习:创建“后退”和“前进”按钮 45
4.7小结 46
4.8问题与解答 46
4.9测试题 47
4.10测试题答案 47
4.11练习题 47
第二部分 学习JavaScript基础 51
第5章 使用变量、字符串和数组 51
5.1使用变量 51
5.1.1选择变量名称 52
5.1.2使用局部变量和全局变量 52
5.1.3给变量赋值 53
5.2理解表达式和运算符 54
5.2.1使用JavaScript运算符 54
5.2.2运算符的优先级 54
5.3 JavaScript的数据类型 55
5.4数据类型之间的转换 56
5.5使用String对象 56
5.5.1创建String对象 57
5.5.2给变量赋值 57
5.5.3计算字符串长度 58
5.5.4字符串大小写转换 59
5.6使用子字符串 59
5.6.1使用字符串的一部分 59
5.6.2获取单个字符 60
5.6.3查找子字符串 60
5.7使用数值数组 61
5.7.1创建数值数组 61
5.7.2理解数组的长度 62
5.7.3存取数组元素 62
5.8使用字符串数组 62
5.8.1建立字符串数组 63
5.8.2分离字符串 63
5.8.3字符串数组的排序 64
5.9数值数组的排序 64
5.10实践练习:排序并显示名字 64
5.11小结 66
5.12问题与解答 67
5.13测试题 67
5.14测试题答案 68
5.15 练习题 68
第6章 使用函数和对象 69
6.1使用函数 69
6.1.1定义函数 70
6.1.2调用函数 71
6.1.3返回值 72
6.2对象简介 73
6.2.1创建对象 74
6.2.2对象属性和值 74
6.2.3了解方法 74
6.3使用对象来简化脚本 74
6.3.1定义对象 75
6.3.2定义对象的方法 75
6.3.3创建对象实例 76
6.4扩展内置对象 77
6.5实践练习:使用对象保存数据 78
6.6小结 80
6.7问题与解答 80
6.8测试题 80
6.9测试题答案 81
6.10练习题 81
第7章 用条件和循环控制流程 83
7.1 if语句 84
7.1.1条件运算符 84
7.1.2条件与逻辑运算符 85
7.1.3关键字else 86
7.2使用简写的条件表达式 86
7.2.1用if和else测试多种条件 87
7.2.2 使用带switch的多个条件 89
7.2.3使用for循环 90
7.2.4使用while循环 92
7.2.5使用do…while循环 92
7.3使用循环 93
7.3.1创建无穷循环 93
7.3.2退出循环 93
7.3.3继续循环 94
7.4循环遍历对象属性 94
7.5实践练习:处理数组和循环 95
7.6小结 97
7.7问题与解答 97
7.8测试题 98
7.9测试题答案 99
7.10练习题 99
第8章 使用内置函数和程序库 101
8.1使用Math对象 101
8.1.1舍入和截取 101
8.1.2生成随机数 102
8.1.3其他Math函数 102
8.2使用Math函数 102
8.3使用with关键字 104
8.4使用日期 105
8.4.1创建Date对象 105
8.4.2设置Date的值 105
8.4.3读取Date的值 106
8.4.4使用时区 106
8.4.5日期格式的转换 107
8.5使用第三方程序库 107
8.5.1 Prototype 107
8.5.2 Script.aculo.us 108
8.5.3 AJAX框架 108
8.6其他程序库 109
8.7实践练习:用程序库增添效果 109
8.7.1下载程序库 109
8.7.2包含文件 110
8.7.3使用效果 110
8.7.4构建脚本 110
8.8小结 112
8.9问题与解答 112
8.10测试题 112
8.11测试题答案 113
8.12练习题 113
第三部分 深入学习DOM 117
第9章 事件响应 117
9.1认识事件处理程序 117
9.1.1对象与事件 118
9.1.2创建事件处理程序 118
9.1.3使用JavaScript定义事件处理程序 119
9.1.4支持多个事件处理程序 119
9.1.5使用event对象 120
9.1.6 Internet Explorer的event属性 121
9.1.7 Netscape和Firefox的event属性 121
9.2使用鼠标事件 122
9.2.1移至和移开 122
9.2.2使用onMouseMove事件 122
9.2.3常态和按下(以及单击) 122
9.3使用键盘事件 125
9.4使用onLoad和onUnload事件 127
9.5实践练习:为网页添加链接说明 127
9.6小结 130
9.7问题与解答 131
9.8测试题 131
9.9 测试题答案 132
9.10练习题 132
第10章 使用窗口和框架 133
10.1用对象控制窗口 133
10.1.1 window对象的属性 134
10.1.2创建新窗口 134
10.1.3打开和关闭窗口 135
10.2移动和调整窗口大小 136
10.3使用超时功能 137
10.4显示对话框 139
10.5使用框架 141
10.5.1为框架使用JavaScript对象 141
10.5.2 frames数组 142
10.6实践练习:在JavaScript中使用框架 142
10.7小结 144
10.8问题与解答 144
10.9测试题 144
10.10测试题答案 145
10.11练习题 145
第11章 利用表单获取数据 147
11.1 HTML表单基础 147
11.2在JavaScript中使用form对象 148
11.2.1 form对象的属性 148
11.2.2提交和重置表单 149
11.2.3检测表单事件 149
11.3编制表单元素的脚本 149
11.3.1文本字段 150
11.3.2文本区域 150
11.3.3处理表单中的文本 150
11.3.4按钮 151
11.3.5复选框 151
11.3.6单选按钮 152
11.3.7下拉列表 153
11.4显示表单数据 154
11.5通过邮件发送表单结果 155
11.6实践练习:验证表单 156
11.7小结 158
11.8问题与解答 158
11.9测试题 159
11.10测试题答案 159
11.11练习题 160
第12章 使用样式表 161
12.1样式与内容 161
12.2定义和使用CSS样式 162
12.2.1创建规则 162
12.2.2设置指定元素的样式 163
12.2.3使用id属性 163
12.2.4使用类 164
12.3使用CSS属性 164
12.3.1文本对齐 164
12.3.2改变颜色和背景图像 165
12.3.3使用字体 166
12.3.4边距和边框 166
12.3.5样式表的单位 166
12.4创建一个简单的样式表 167
12.5使用外部样式表 169
12.5.1链接外部样式表 169
12.5.2创建外部.Css文件 169
12.6用JavaScript控制样式 169
12.7实践练习:创建动态样式 170
12.8小结 172
12.9问题与解答 173
12.10测试题 173
12.11测试题答案 174
12.12练习题 174
第13章 使用W3C的DOM 175
13.1 DOM和动态HTMvL 175
13.2理解DOM结构 176
13.2.1节点 177
13.2.2父与子 177
13.2.3兄弟 177
13.3创建可定位元素(层) 177
13.3.1设置对象的位置和大小 178
13.3.2设定溢出属性 179
13.3.3使用可见性属性 179
13.3.4设置背景和边框属性 179
13.3.5用JavaScript控制定位 180
13.4实践练习:创建可移动的层 180
13.5小结 183
13.6问题与解答 183
13.7测试题 183
13.8测试题答案 184
13.9练习题 184
第14章 使用高级DOM功能 185
14.1使用DOM节点 185
14.1.1基本节点属性 186
14.1.2节点关系属性 186
14.1.3文档方法 186
14.1.4节点的方法 187
14.2隐藏和显示对象 187
14.3在页面中修改文本 189
14.4为页面添加文本 190
14.5实践练习:创建导航树 192
14.6小结 194
14.7问题与解答 195
14.8测试题 195
14.9测试题答案 195
14.10练习题 196
第四部分 使用JavaScript的高级功能 199
第15章 编写规范型脚本 199
15.1编写脚本的最佳方法 199
15.1.1内容、展现和行为 200
15.1.2渐进式提高 200
15.1.3添加事件处理程序 201
15.1.4 Web标准:浏览器无关性 203
15.1.5为代码编写文档 203
15.1.6可用性 203
15.1.7设计模型 204
15.1.8可访问性 204
15.2读取浏览器的信息 205
15.2.1显示浏览器的信息 205
15.2.2处理特殊的浏览器 206
15.3编写跨浏览器的脚本 208
15.3.1功能检测技术 208
15.3.2处理浏览器异常 209
15.4为不支持JavaScript的浏览器提供支持 209
15.4.1使用<noscript>标记 210
15.4.2保持JavaScript的功能可选 210
15.4.3避免错误 211
15.5实践练习:创建规范型脚本 211
15.6小结 214
15.7问题与解答 214
15.8测试题 214
15.9测试题答案 215
15.10练习题 215
第16章 调试JavaScript应用程序 217
16.1防止Bug 217
16.1.1养成良好的编程习惯 217
16.1.2常见错误的预防 218
16.2基本调试工具 219
16.2.1 Firefox的JavaScript控制台 219
16.2.2在Internet Explorer中显示错误信息 220
16.2.3警告信息 220
16.2.4使用注释功能 221
16.2.5其他调试工具 221
16.3创建错误处理程序 221
16.3.1使用onerror属性 222
16.3.2显示错误信息 222
16.3.3使用rty和catch 223
16.4高级调试工具 224
16.4.1 Web Developer工具栏(用于Firefox) 224
16.4.2 Developer工具栏(适用于Internet Explorer) 225
16.4.3 DOM Inspector(用于Firefox) 225
16.4.4查看生成的源代码 226
16.4.5 JavaScript Shell 226
16.5实践练习:调试脚本 227
16.5.1 测试脚本 228
16.5.2解决问题 228
16.5.3重新测试 229
16.6小结 231
16.7问题与解答 231
16.8测试题 232
16.9测试题答案 232
16.10练习题 232
第17章AJAX:远程脚本技术 235
17.1 AJAX简介 235
17.1.1 JavaScript客户端(前端) 236
17.1.2后台 236
17.1.3 XML 236
17.1.4 AJAX的典型应用 237
17.1.5框架和库 237
17.1.6 AJAX的局限性 238
17.2使用XMLHttpRequest 238
17.2.1创建请求 238
17.2.2打开URL 239
17.2.3发送请求 239
17.2.4等待响应 239
17.2.5解释响应数据 240
17.3创建简单的AJAX库 240
17.3.1 ajaxRequest()函数 241
17.3.2 ajaxResponse()函数 241
17.3.3使用AJAX库 241
17.4使用AJAX库编写 AJAX测验程序 241
17.4.1 HTML文件 242
17.4.2 XML文件 243
17.4.3 JavaScript文件 243
17.4.4测试示例 245
17.5调试AJAX应用程序 246
17.6实践练习:制作一个实时查询表单 246
17.6.1 HTML表单 246
17.6.2 PHP后台 247
17.6.3 JavaScript前端 249
17.6.4执行程序 250
17.7小结 251
17.8问题与解答 251
17.9测试题 251
17.10测试题答案 252
17.11练习题 252
第18章Greasemonkey:使用JavaScript增强页面功能 253
18.1 Greasemonkey插件简介 253
18.1.1在Firefox中安装Greasemonkey插件 254
18.1.2 Internet Explorer的Turnabout插件 255
18.1.3其他浏览器 255
18.1.4用户脚本的安全性 256
18.2使用用户脚本 256
18.2.1查找脚本 256
18.2.2安装脚本 256
18.2.3管理脚本 256
18.2.4测试用户脚本 258
18.2.5激活或禁用Greasemonkey或Turnabout 258
18.3创建自己的用户脚本 258
18.3.1创建一个简单的用户脚本 258
18.3.2描述用户脚本 259
18.3.3 测试脚本 259
18.3.4 Greasemonkey API函数 260
18.3.5创建专用站点脚本 261
18.3.6调试用户脚本 263
18.4实践练习:创建用户脚本 263
18.4.1运行过程 264
18.4.2使用脚本 265
18.5小结 265
18.6问题与解答 266
18.7测试题 266
18.8测试题答案 267
18.9练习题 267
第五部分 使用JavaScript创建多媒体应用程序 271
第19章 使用图像和动画 271
19.1使用动态图像 271
19.1.1使用image对象 271
19.1.2预加载图像 272
19.2创建Rollover(鼠标翻转)效果 272
19.2.1通过JavaScript创建Rollover效果 273
19.2.2使用CSS而不是JavaScript实现Rollover效果 274
19.2.3使用CSS技术创建图形化的rollover效果 275
19.3制作简单的JavaScript幻灯效果 277
19.3.1 HTML文件 277
19.3.2 JavaScript文件 278
19.4实践练习:向幻灯中添加动画效果 279
19.4.1 HTML文件 280
19.4.2 CSS文件 280
19.4.3 JavaScript脚本 281
19.4.4整合所有技术 283
19.5小结 284
19.6问题与解答 284
19.7测试题 284
19.8测试题答案 285
19.9练习题 285
第20章 使用声音和插件 287
20.1插件介绍 287
20.1.1 〈embed〉和〈object〉标签 288
20.1.2理解MIME类型 288
20.1.3在JavaScrnpt中使用插件 288
20.1.4插件功能检测 289
20.2 JavaScrnpt和Flash 289
20.2.1 ActionScrnpt 289
20.2.2 JavaScrnpt与Flash之间的交互 290
20.2.3在JavaScrnpt中嵌入Flash 290
20.3使用JavaScrnpt处理音频 290
20.3.1音频格式 291
20.3.2音频插件 291
20.3.3嵌入音频 291
20.3.4使用JavaScrnpt控制音频 292
20.3.5检测当前浏览支持的音频功能 292
20.3.6使用Flash 293
20.4使用JavaScrnpt测试音频 293
20.5实践练习:使用鼠标播放音乐 294
20.5.1示例的HTML文档 295
20.5.2 CSS样式单 295
20.5.3播放音频 296
20.5.4嵌入音频 296
20.5.5整合所有技术 297
20.6小结 298
20.7问题与解答 298
20.8测试题 299
20.9测试题答案 299
20.10练习题 299
第六部分 创建复杂脚本 303
第21章 创建JavaScript下拉菜单 303
21.1设计下拉菜单 303
21.1.1创建HTML标记 304
21.1.2使用CSS设计菜单布局 305
21.2使用脚本来设置下拉菜单的行为 308
21.2.1设置菜单 308
21.2.2显示子菜单 308
21.2.3隐藏子菜单 309
21.2.4完成脚本 309
21.3实践练习:利用CSS增强菜单 312
21.4小结 314
21.5问题与解答 314
21.6测试题 315
21.7测试题答案 315
21.8练习题 315
第22章 创建JavaScript游戏 317
22.1游戏简介 317
22.1.1游戏玩法 317
22.1.2得分计算 318
22.1.3创建图形 319
22.2创建HTML文档 319
22.3创建脚本 321
22.3.1使用对象存储纸牌 321
22.3.2构建游戏板 322
22.3.3洗牌 322
22.3.4将牌放到游戏板上 323
23.3.5计算行、列和对角线得分 324
23.3.6合计得分 325
23.3.7结束游戏 326
22.4利用CSS添加样式 326
22.5实践练习:组合应用技术 327
22.6小结 332
22.7问题与解答 332
22.8测试题 333
22.9测试题答案 333
22.10练习题 333
第23章 创建JavaScript应用程序 335
23.1创建滚动窗口 335
23.1.1 HTML文档 335
23.1.2 CSS文件 336
23.1.3 JavaScrnpt文件 337
23.2利用JavaScrnpt在CSS样式表之间切换 338
23.2.1创建HTML文档 338
23.2.2创建第一张样式表 340
23.2.3创建第二张样式表 341
23.2.4创建脚本 341
23.3实践练习:创建动态表单 342
23.3.1创建HTMI…文档 343
23.3.2添加脚本 344
23.4小结 346
23.5问题与解答 346
23.6测试题 346
23.7测试题答案 347
23.8练习题 347
第24章JavaScript的未来 349
24.1学习JavaScrnpt高级技巧 349
24.2未来的Web技术 350
24.2.1 JavaScript的未来版本 350
24.2.2 DOM的未来版本 350
24.2.3 XMML(可扩展标记语言) 350
24.2.4 XHTML(可扩展超文本标记语言) 351
24.2.5 XSL(可扩展样式表语言) 352
24.3为未来做好准备 352
24.3.1保持脚本兼容性 352
24.3.2保持HTML兼容 353
24.3.3详细编制文档 353
24.4继续学习其他语言 353
24.5实践练习:创建拖放式对象 354
24.5.1 HTML文档 354
24.5.2 CSS样式表 355
24.5.3实现拖放 356
24.5.4 JavaScrnpt文件 357
24.6小结 359
24.7问题与解答 359
24.8测试题 360
24.9测试题答案 360
24.10练习题 360
第七部分 附录 363
附录A其他JavaScript资源 363
A.1 JavaScrnpt网站 363
A.2 Web开发站点 363
附录BJavaScript开发人员工具 365
B.1 HTML和文本编辑器 365
B.1.1 HomeSitE 365
B.1.2 TopStylE 365
B.1.3 FrontPagE 366
B.1.4 BBEdit 366
B.1.5文本编辑器 366
B.2 HTML验证工具 366
B.3调试工具 367
附录C术语表 369
附录D JavaScript快速参考 373
D.1内置对象 373
D.1.1数组 373
D.1.2字符串 374
D.1.3 Math 374
D.1.4 Date 375
D.2创建和自定义对象 376
D.2.1创建对象 376
D.2.2自定义对象 377
D.3 JavaScript语句 377
D.3.1注释 377
D.3.2 break 377
D.3.3 continue 377
D.3.4 for 378
D.3.5 for ……in 378
D.3.6 function 378
D.3.7 if ……else 378
D.3.8 return 379
D.3.9 var 379
D.3.10 while 379
D.4 JavaScript内置函数 379
D.4.1 eval 379
D.4.2 parseInt 379
D.4.3 parseFloat 380
附录E DOM快速参考 381
E.1 DOM Level O 381
E.1.1 window 381
E.1.2 location 382
E.1.3 history 382
E.1.4 document 382
E.1.5 navigator 382
E.2 DOM Level 1 383
E.2.1基本的节点属性 383
E.2.2关系属性 383
E.2.3偏置属性 383
E.2.4样式属性 384
E.2.5节点方法 384
E.2.6文档对象方法和属性 384