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