第1章 JavaScript简史 1
1.1 JavaScript的起源 1
1.2 DOM 2
1.3浏览器战争 3
1.3.1 DHTML 3
1.3.2浏览器之间的冲突 3
1.4制定标准 4
1.4.1浏览器以外的考虑 4
1.4.2浏览器战争的结局 5
1.4.3崭新的起点 5
1.5小结 6
第2章 JavaScript语法 8
2.1准备工作 8
2.2语法 10
2.2.1语句 10
2.2.2注释 10
2.2.3变量 11
2.2.4数据类型 14
2.2.5数组 16
2.2.6对象 18
2.3操作 19
2.4条件语句 21
2.4.1比较操作符 22
2.4.2逻辑操作符 23
2.5循环语句 24
2.5.1 while循环 24
2.5.2 for循环 25
2.6函数 26
2.7对象 29
2.7.1内建对象 30
2.7.2宿主对象 31
2.8小结 31
第3章 DOM 32
3.1文档:DOM中的“D” 32
3.2对象:DOM中的“O” 32
3.3模型:DOM中的“M” 33
3.4节点 35
3.4.1元素节点 35
3.4.2文本节点 35
3.4.3属性节点 36
3.4.4 CSS 36
3.4.5获取元素 38
3.4.6盘点知识 42
3.5获取和设置属性 43
3.5.1 getAttribute 43
3.5.2 setAttribute 44
3.6小结 45
第4章 案例研究:JavaScript图片库 46
4.1标记 46
4.2 JavaScript 48
4.2.1非DOM解决方案 49
4.2.2最终的函数代码清单 50
4.3应用这个JavaScript函数 50
4.4对这个函数进行扩展 52
4.4.1 childNodes属性 53
4.4.2 nodeType属性 54
4.4.3在标记里增加一段描述 54
4.4.4用JavaScript改变这段描述 55
4.4.5 nodeValue属性 56
4.4.6 firstChild和lastChild属性 56
4.4.7利用nodeValue属性刷新这段描述 57
4.5小结 60
第5章 最佳实践 61
5.1过去的错误 61
5.1.1不要怪罪JavaScript 61
5.1.2 Flash的遭遇 62
5.1.3质疑一切 63
5.2平稳退化 63
5.2.1 “javascript:”伪协议 64
5.2.2内嵌的事件处理函数 65
5.2.3谁关心这个 65
5.3向CSS学习 66
5.3.1结构与样式的分离 66
5.3.2渐进增强 67
5.4分离JavaScript 68
5.5向后兼容 70
5.5.1对象检测 70
5.5.2浏览器嗅探技术 71
5.6性能考虑 72
5.6.1尽量少访问DOM和尽量减少标记 72
5.6.2合并和放置脚本 73
5.6.3压缩脚本 73
5.7小结 74
第6章 案例研究:图片库改进版 75
6.1快速回顾 75
6.2它支持平稳退化吗 76
6.3它的JavaScript与HTML标记是分离的吗 77
6.3.1添加事件处理函数 77
6.3.2共享onload事件 82
6.4不要做太多的假设 84
6.5优化 86
6.6键盘访问 88
6.7把JavaScript与CSS结合起来 90
6.8 DOM Core和HTML-DOM 93
6.9小结 94
第7章 动态创建标记 96
7.1一些传统方法 96
7.1.1 document.write 96
7.1.2 innerHTML属性 98
7.2 DOM方法 101
7.2.1 createElement方法 101
7.2.2 appendChild方法 102
7.2.3 createTextNode方法 103
7.2.4一个更复杂的组合 105
7.3重回图片库 107
7.3.1在已有元素前插入一个新元素 108
7.3.2在现有方法后插入一个新元素 109
7.3.3图片库二次改进版 111
7.4 Ajax 114
7.4.1 XMLHttpRequest对象 115
7.4.2渐进增强与Ajax 119
7.4.3 Hijax 120
7.5小结 121
第8章 充实文档的内容 122
8.1不应该做什么 122
8.2把“不可见”变成“可见” 123
8.3内容 123
8.3.1选用HTML、XHTML还是HTML5 124
8.3.2 CSS 126
8.3.3 JavaScript 127
8.4显示“缩略语列表” 127
8.4.1编写displayAbbreviations函数 128
8.4.2创建标记 130
8.4.3一个浏览器“地雷” 135
8.5显示“文献来源链接表” 138
8.6显示“快捷键清单” 143
8.7检索和添加信息 146
8.8小结 147
第9章 CSS-DOM 148
9.1三位一体的网页 148
9.1.1结构层 148
9.1.2表示层 148
9.1.3行为层 149
9.1.4分离 150
9.2 style属性 150
9.2.1获取样式 151
9.2.2设置样式 156
9.3何时该用DOM脚本设置样式 158
9.3.1根据元素在节点树里的位置来设置样式 158
9.3.2根据某种条件反复设置某种样式 161
9.3.3响应事件 165
9.4 className属性 167
9.5小结 171
第10章 用JavaScript实现动画效果 172
10.1动画基础知识 172
10.1.1位置 172
10.1.2时间 175
10.1.3时间递增量 175
10.1.4抽象 178
10.2实用的动画 184
10.2.1提出问题 184
10.2.2解决问题 186
10.2.3 CSS 187
10.2.4 JavaScript 189
10.2.5变量作用域问题 192
10.2.6改进动画效果 193
10.2.7添加安全检查 196
10.2.8生成HTML标记 198
10.3小结 200
第11章 HTML5 201
11.1 HTML5简介 201
11.2来自朋友的忠告 203
11.3几个示例 204
11.3.1 Canvas 205
11.3.2音频和视频 209
11.3.3表单 215
11.4 HTML5还有其他特性吗 219
11.5小结 219
第12章 综合示例 220
12.1项目简介 220
12.1.1原始资料 220
12.1.2站点结构 220
12.1.3页面结构 221
12.2设计 222
12.3 CSS 223
12.3.1颜色 225
12.3.2布局 226
12.3.3版式 228
12.4标记 229
12.5 JavaScript 230
12.5.1页面突出显示 231
12.5.2 JavaScript幻灯片 235
12.5.3内部导航 239
12.5.4 JavaScript图片库 242
12.5.5增强表格 245
12.5.6增强表单 249
12.5.7压缩代码 263
12.6小结 264
附录JavaScript库 265