第1章 JavaScript入门 1
1.1 JavaScript产生的原因 3
1.2 JavaScript是什么 3
1.3 JavaScript的问题和价值 4
1.4 JavaScript不可靠为什么还要用 5
1.5 网页中的JavaScript和基本语法 6
1.5.1 JavaScript语法 7
1.5.2 执行代码 8
1.5.3 函数 9
1.6 对象 10
1.7 简单的JavaScript示例 11
1.8 小结 13
第2章 数据和判定 15
2.1 数据、数据类型和数据运算符 15
2.1.1 字符串数据类型 16
2.1.2 运算符 18
2.1.3 JavaScript变量 20
2.1.4 不同数据类型的转换 22
2.2 复合数据类型:数组和对象 25
2.2.1 JavaScript提供的对象:String、Date和Math 26
2.2.2 数组 33
2.3 在JavaScript中进行判定 39
2.3.1 逻辑运算符和比较运算符 39
2.3.2 条件语句 41
2.3.3 测试多个值:switch语句 44
2.3.4 重复事件:循环 45
2.4 小结 50
第3章 从DHTML到DOM编程 51
3.1 作为“行为层”的JavaScript 53
3.1.1 对象检测与浏览器依赖性的比较 55
3.1.2 渐进增强 57
3.2 JavaScript和可访问性 58
3.3 良好的编码实践 59
3.3.1 命名习惯 59
3.3.2 代码布局 60
3.3.3 注释 62
3.3.4 函数 64
3.3.5 使用三元运算符简化代码 66
3.3.6 函数的分类和复用 67
3.3.7 变量和函数作用域 67
3.3.8 使用对象字面量保证脚本安全 68
3.4 小结 70
第4章 HTML与JavaScript 71
4.1 HTML文档剖析 71
4.2 在网页中使用JavaScript提供反馈信息:老的方式 75
4.3 通过DOM访问文档 80
4.4 元素的子节点、父节点、兄弟节点和值 83
4.4.1 从父节点到子节点 84
4.4.2 从子节点到父节点 85
4.4.3 兄弟节点之间 86
4.5 修改元素属性 90
4.6 创建、移除和替换元素 91
4.6.1 避免NOSCRIPT 94
4.6.2 通过innerHTML简化脚本 96
4.6.3 DOM小结:你的备忘单 97
4.6.4 DOMhelp:我们自己的辅助函数库 98
4.7 小结 102
第5章 表现与行为(CSS与事件处理) 103
5.1 通过JavaScript改变表现层 103
5.2 通过事件处理改变文档的行为 129
5.2.1 W3C标准兼容的事件 131
5.2.2 修正事件以适应W3C不兼容的浏览器 139
5.2.3 永不停止优化 144
5.2.4 页面加载问题及其解决方案 145
5.2.5 读取和过滤键盘输入 146
5.2.6 事件处理的危险 150
5.3 小结 151
第6章 JavaScript的常用对象:图片和窗口 152
6.1 图片与JavaScript 152
6.1.1 图片编程基础 153
6.1.2 预载图片 154
6.1.3 翻转效果 155
6.1.4 幻灯片显示 163
6.1.5 图片与JavaScript小结 176
6.2 窗口与JavaScript 177
6.2.1 窗口属性 178
6.2.2 窗口方法 179
6.2.3 窗口与JavaScript小结 198
6.3 小结 199
第7章 JavaScript与用户的交互:导航与表单 200
7.1 导航与JavaScript 200
7.1.1 重新加载网页的恐惧 200
7.1.2 JavaScript导航基础 201
7.1.3 浏览器导航 203
7.1.4 页内导航 204
7.1.5 网站导航 212
7.1.6 分页 219
7.1.7 使用JavaScript进行导航小结 226
7.2 表单与JavaScript 226
7.2.1 JavaScript表单基础 227
7.2.2 表单元素 228
7.2.3 交互式表单:隐藏或显示独立元素 241
7.2.4 定制表单元素 245
7.2.5 表单与JavaScript小结 246
7.3 小结 246
第8章 与Ajax后端交互 247
8.1 Ajax到底是什么 248
8.2 高速缓存竟带来了麻烦 254
8.3 把X放回到Ajax里面 255
8.3.1 使用JSON代替XML 259
8.3.2 使用服务器端脚本来访问第三方内容 261
8.3.3 关于缓慢链接的XHR问题 264
8.3.4 一个更大的Ajax示例:关联选择框 266
8.3.5 可选的动态Ajax菜单 273
8.4 小结 280
第9章 数据验证技术 282
9.1 客户端JavaScript验证的优点和缺点 282
9.2 使用JavaScript保护文件内容 283
9.3 全能验证的神话 284
9.4 使用字符串和数字方法的基本JavaScript验证 284
9.4.1 字符串验证方法 284
9.4.2 数字验证方法 290
9.5 正则表达式 293
9.5.1 语法和属性 294
9.5.2 通配符搜索、约束范围以及其替换 295
9.5.3 使用量词约束字符的数量 295
9.5.4 词界、空白字符以及其他快捷符号 296
9.5.5 使用正则表达式的方法 297
9.5.6 圆括号分组的功能 297
9.5.7 正则表达式资源 298
9.6 验证方法小结 299
9.7 表单验证技术 299
9.7.1 指定强制字段 299
9.7.2 隐藏字段方法 300
9.7.3 指示元素方法 301
9.7.4 CSS类方法 301
9.7.5 自定义属性方法 302
9.7.6 这些方法的缺点 302
9.7.7 共用验证规则 302
9.8 为用户反馈验证信息 304
9.8.1 显示错误字段的列表 304
9.8.2 使用可单击的错误消息代替主表单 308
9.8.3 单独地突出显示错误的字段 310
9.8.4 即时验证反馈 313
9.9 其他的动态验证方法 314
9.10 小结 317
第10章 现代的JavaScript案例研究:动态图库 319
10.1 缩略图图库基础 319
10.2 缩略图图库是什么以及它应该做什么 319
10.3 静态缩略图图库 320
10.4 使用JavaScript模拟动态图库 320
10.5 显示标题 326
10.6 动态的缩略图库 330
10.7 从文件夹中创建图片徽章 333
10.8 小结 340
第11章 使用第三方JavaScript 341
11.1 网络为你提供了什么 341
11.2 代码片段、RSS提要、各种API以及函数库 342
11.2.1 RSS提要和REST API 342
11.2.2 REST API示例 344
11.3 使用简短精练的函数库:jQuery 344
11.4 使用API:用Google Maps为你的网站添加地图 351
11.5 完整的服务:雅虎开发人员网络以及YUI 360
11.5.1 使用YUI的弹性标题 361
11.5.2 使用YUI的连接管理器和容器组件代替弹出窗口 366
11.5.3 YUI小结 370
11.6 小结 371
附录A 调试JavaScript 372