目 录
第 一部分 Web脚本编写与JavaScript语言的概念
第 1章 了解JavaScript 3
1.1 学习Web脚本编写基础 3
1.1.1 脚本和程序 4
1.1.2 JavaScript简介 4
1.2 在网页中如何嵌入JavaScript 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 Internet 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基础
第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
第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和动态HTML 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的高级功能
第 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 使用
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 使用try和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创建多媒体应用程序
第 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
20.1.2 理解MIME类型 288
20.1.3 在JavaScript中使用插件 288
20.1.4 插件功能检测 289
20.2 JavaScript和Flash 289
20.2.1 ActionScript 289
20.2.2 JavaScript与Flash之间的交互 290
20.2.3 在JavaScript中嵌入Flash 290
20.3 使用JavaScript处理音频 290
20.3.1 音频格式 291
20.3.2 音频插件 291
20.3.3 嵌入音频 291
20.3.4 使用JavaScript控制音频 292
20.3.5 检测当前浏览支持的音频功能 292
20.3.6 使用Flash 293
20.4 使用JavaScript测试音频 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
第六部分 创建复杂脚本
第 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 JavaScript文件 337
23.2 利用JavaScript在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 创建HTML文档 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 学习JavaScript高级技巧 349
24.2 未来的Web技术 350
24.2.1 JavaScript的未来版本 350
24.2.2 DOM的未来版本 350
24.2.3 XML(可扩展标记语言) 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 JavaScript文件 357
24.6 小结 359
24.7 问题与解答 359
24.8 测试题 360
24.9 测试题答案 360
24.10 练习题 360
第七部分 附录
附录A 其他JavaScript资源 363
A.1 JavaScript网站 363
A.2 Web开发站点 363
附录B JavaScript开发人员工具 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 0 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