第1章 JavaScript 的现状 1
1.1 30年河东,30年河西 1
1.2 JavaScript遇上结合DOM的HTML 2
1.3 Ajax的崛起 3
1.4 管理JavaScript 3
1.4.1 代码装载 4
1.4.2 代码解析 4
1.4.3 正确地在XHTML页面中嵌入代码 5
1.5 代码调试 6
1.5.1 警告 6
1.5.2 页面记录 6
1.5.3 浏览器插件 7
1.5.4 HTTP调试 10
1.6 小结 12
第2章 HTML、CSS和JavaScript 13
2.1 基础知识 13
2.2 HTML最佳实践 15
2.2.1 HTML与XHTML 16
2.2.2 两全其美 16
2.3 CSS基础 17
2.3.1 将含义表达出来 17
2.3.2 元素的标识 17
2.3.3 应用 CSS 19
2.4 JavaScript基础 21
2.4.1 函数 21
2.4.2 对象、属性和方法 21
2.4.3 点号语法和方括号语法 22
2.4.4 原型 23
2.4.5 值传递和引用传递 24
2.5 JavaScript与DOM 25
2.5.1 DOM是什么 25
2.5.2 DOM树的结构 26
2.5.3 document对象 27
2.5.4 通过类名获取元素 29
2.6 在DOM中移动 30
2.7 处理属性 31
2.7.1 style属性 32
2.7.2 class属性 32
2.8 向DOM中插入内容 33
2.9 浏览器嗅探与对象检测 35
2.10 正则表达式 35
2.11 格式化的惯例 37
2.12 事件处理 38
2.12.1 内联的事件处理 38
2.12.2 this关键字 39
2.12.3 无侵入的JavaScript 39
2.12.3 在页面加载前访问元素 40
2.12.5 用DOM方法绑定事件 42
2.12.6 事件捕捉与事件冒泡 43
2.12.7 在IE中追加事件 43
2.12.8 检查上下文 44
2.12.9 取消行为 46
2.12.10 综合练习 47
2.13 事件委托 48
2.13.1 搜寻冒泡中途经过的元素 52
2.13.2 事件委托不适用的情形 53
2.14 小结 54
第3章 面向对象编程 55
3.1 什么是面向对象编程 55
3.2 函数 56
3.2.1 添加方法和属性 57
3.2.2 对象的实例化机制 58
3.2.3 在构造函数中返回对象 58
3.2.4 原型 60
3.3 字面量对象 61
3.4 for..in循环 63
3.5 命名的参数 65
3.6 命名空间 65
3.7 闭包 66
3.8 封装 68
3.9 函数式编程 71
3.9.1 回调 71
3.9.2 函数的call和apply 73
3.9.3 在集合上应用函数 74
3.9.4 可串接方法 75
3.9.5 内部迭代器 75
3.10 小结 76
第4章 库 77
4.1 DOM 操作 77
4.2 应用上的便利措施 78
4.2.1 语言扩展和语言桥路 78
4.2.2 事件处理 78
4.2.3 Ajax 79
4.2.4 字符串和模板处理 79
4.2.5 使用集合 80
4.2.6 处理JSON和XML 80
4.3 界面部件 81
4.4 流行的库 81
4.4.1 Dojo 82
4.4.2 Prototype 83
4.4.3 jQuery 85
4.4.4 Yahoo!UILibrary(YUI) 86
4.4.5 Mootools 87
4.4.6 Script.aculo.us 89
4.4.7 ExtJS 89
4.5 新出现的库 91
4.5.1 Base2.DOM 92
4.5.2 DED|Chain 92
4.6 怎样选择库 92
4.6.1 社区 93
4.6.2 文档 93
4.7 小结 93
第5章 Ajax和数据交换 94
5.1 分析Ajax应用 94
5.2 解构Ajax过程 95
5.2.1 Ajax的请求/响应过程 97
5.2.2 失败 98
5.2.3 绘制故事板 98
5.3 Ajax的数据格式 100
5.3.1 XML 100
5.3.2 XML之外的选择 107
5.4 构造可重用的Ajax对象 110
5.5 为失败做准备 112
5.5.1 超时处理 113
5.5.2 HTTP状态代码 115
5.5.3 多重请求 115
5.5.4 意外的数据 116
5.6 用库处理Ajax调用 117
5.6.1 Prototype 117
5.6.2 YUI 118
5.6.3 jQuery 119
5.7 小结 120
第6章 视觉效果 121
6.1 为什么要使用视觉效果 121
6.2 构建一个简单的动画对象 122
6.2.1 回调 127
6.2.2 动画队列 129
6.3 扩展动画类 130
6.4 用库来实现动画 133
6.4.1 Script.aculo.us 134
6.4.2 jQuery 135
6.4.3 Mootools 136
6.5 小结 137
第7章 表单验证与JavaScript 138
7.1 在服务器上验证 138
7.2 客户端 140
7.2.1 用JavaScript添加显示错误消息的Span块 147
7.2.2 阻止表单提交 148
7.3 用 Ajax 实现表单验证 150
7.3.1 服务器端验证 151
7.3.2 客户端 153
7.4 小结 156
第8章 案例研究:改良FAQ页面 157
8.1 第1课:瞄准目标 157
8.2 第2课:JavaScript之舞 162
8.3 小结 176
第9章 案例研究:动态帮助系统 177
9.1 任务 177
9.2 计划和准备 178
9.2.1 总体设计 178
9.2.2 项目准备 178
9.3 编写标记 179
9.3.1 用布局处理共同的标记 179
9.3.2 添加一个示例应用页面 181
9.4 用CSS添加样式 182
9.5 Prototype和LowPro出场 183
9.6 让帮助栏可用 184
9.6.1 建立帮助控制器 184
9.6.2 添加行为 185
9.6.3 实现加载提示 187
9.7 最后润色 189
9.7.1 用Moo.fx添加动画 189
9.7.2 实现边栏内锚点 191
9.8 回顾 192
9.8.1 用符合语义的HTML奠定坚实的基础 192
9.8.2 恰当使用HTML、CSS、JavaScript 192
9.8.3 用CSS选择符充当应用的胶水 193
9.8.4 对Ajax来说,简单是最好的 193
9.9 小结 193
9.10 源代码 194