第一部分JavaScript基础 3
第1章 了解JavaScript 3
1.1 Web脚本编程基础 3
1.2服务器端与客户端编程 4
1.3 JavaScript简介 4
1.4 JavaScript起源 5
浏览器战争 5
1.5 〈script〉标签 6
1.6 DOM简介 6
1.6.1 W3C和标准兼容 7
1.6.2 window和document对象 7
1.6.3对象标记法 8
1.7与用户交互 8
1.7.1 window.alert() 8
1.7.2 document.write() 9
1.7.3读取document对象的属性 10
1.8小结 11
1.9问答 11
1.10作业 11
1.10.1测验 12
1.10.2答案 12
1.11练习 12
第2章 创建简单的脚本 13
2.1在Web页面里添加JavaScript 13
2.2 JavaScript语句 15
代码注释 15
2.3变量 16
2.4操作符 17
2.4.1算术操作符 17
2.4.2操作符优先级 18
2.4.3对字符串使用操作符 “+” 18
2.5捕获鼠标事件 19
2.5.1 onClick事件处理器 20
2.5.2 onMouseOver和onMouseOut事件处理器 21
2.6小结 23
2.7问答 23
2.8作业 23
2.8.1测验 23
2.8.2答案 24
2.9练习 24
第3章 使用函数 25
3.1基本语法 25
3.2调用函数 26
把JavaScript代码放置到页面的〈head〉区域 26
3.3参数 27
多参数 28
3.4从函数返回值 30
3.5变量作用域 31
3.6小结 32
3.7问答 32
3.8作业 33
3.8.1测验 33
3.8.2答案 33
3.9练习 33
第4章DOM对象和内置对象 34
4.1与用户交互 34
4.1.1 alert() 34
4.1.2 confiirm() 35
4.1.3 prompt() 35
4.2根据id选择元素 36
innerHTML属性 36
4.3访问浏览器历史记录 37
4.4使用location对象 37
4.4.1使用location对象导航 37
4.4.2刷新页面 38
4.5浏览器信息:navigator对象 38
4.6日期和时间 40
4.6.1创建具有当前日期和时间的Date对象 40
4.6.2创建具有指定日期和时间的Date对象 40
4.6.3设置和编辑日期与时间 41
4.7利用Math对象简化运算 41
4.7.1取整 42
4.7.2获得最大值和最小值 42
4.7.3随机数 42
4.7.4数学常数 43
4.7.5关键字with 43
4.8小结 45
4.9问答 45
4.10作业 46
4.10.1 测验 46
4.10.2答案 46
4.11练习 46
第5章 数据类型 48
5.1数值 48
5.1.1整数 49
5.1.2浮点数 49
5.1.3非数值(NaN) 49
5.1.4使用parseFloat()和parseInt() 50
5.1.5无穷大(Infiinity) 50
5.2字符串 50
5.2.1转义序列 50
5.2.2字符串方法 51
5.3布尔值 53
“非”操作符(!) 53
5.4数组 54
5.4.1创建新数组 54
5.4.2初始化数组 54
5.4.3数组的方法 54
5.5小结 57
5.6问答 58
5.7作业 58
5.7.1测验 58
5.7.2答案 58
5.8练习 59
第二部分JavaScript进阶 63
第6章 功能更强大的脚本 63
6.1条件语句 63
6.1.1 if()语句 63
6.1.2比较操作符 64
6.1.3测试相等 64
6.1.4 if进阶 65
6.1.5测试多个条件 66
6.1.6 switch语句 66
6.1.7逻辑操作符 67
6.2循环和控制结构 67
6.2.1 while 67
6.2.2 do…while 68
6.2.3 for 68
6.2.4使用break跳出循环 68
6.2.5利用for…in在对象集里循环 69
6.3调试代码 70
6.4小结 75
6.5问答 75
6.6作业 75
6.6.1测验 75
6.6.2答案 76
6.7练习 76
第7章 面向对象编程 77
7.1什么是面向对象编程(OOP) 77
7.2创建对象 78
7.2.1创建直接实例 78
7.2.2使用关键字this 79
7.2.3匿名函数 81
7.2.4使用构造函数 81
7.2.5对象实例化 82
7.2.6构造函数参数 83
7.3使用prototype扩展和继承对象 83
7.3.1扩展对象 83
7.3.2继承 85
7.4封装 87
7.5使用功能检测 87
7.6小结 88
7.7问答 88
7.8作业 89
7.8.1测验 89
7.8.2答案 89
7.9练习 89
第8章JSON简介 90
8.1 JSON是什么 90
JSON语法 91
8.2访问JSON数据 91
8.2.1使用eval() 92
8.2.2使用浏览器对JSON直接支持 92
8.3 JSON的数据序列化 93
8.4 JSON数据类型 94
8.5模拟关联数组 95
8.6使用JSON创建对象 95
8.6.1属性 96
8.6.2方法 96
8.6.3数组 96
8.6.4对象 97
8.7 JSON安全性 99
8.8小结 99
8.9问答 99
8.10作业 99
8.10.1测验 99
8.10.2答案 100
8.11练习 100
第9章 响应事件 101
9.1理解事件处理器 101
9.1.1事件范例 101
9.1.2添加事件处理器 102
9.1.3删除事件处理器 103
9.2默认操作 103
禁止默认操作 104
9.3 event对象 106
9.3.1 W3C方式 106
9.3.2微软方式 106
9.4跨浏览器的事件处理器 107
9.5事件处理器高级注册方式 109
9.5.1 W3 C方式 110
9.5.2微软方式 110
9.5.3跨浏览器的实现方式 110
9.6小结 114
9.7问答 114
9.8作业 114
9.8.1测验 114
9.8.2答案 115
9.9练习 115
第10章JavaScript和cookie 116
10.1什么是cookie 116
cookie的局限 117
10.2 document.cookie属性 117
数据的编码和解码 117
10.3 cookie组成 118
10.3.1 cookieName和cookieValue 118
10.3.2 domain 118
10.3.3 path 118
10.3.4 secure 118
10.3.5 expires 119
10.4编写cookie 119
10.5编写cookie的函数 119
10.6读取cookie 121
10.7删除cookie 122
10.8在一个cookie里设置多个值 124
10.9小结 125
10.10问答 125
10.11作业 125
10.11.1测验 125
10.11.2答案 126
10.12练习 126
第三部分 文档对象模型(DOM) 129
第11章 遍历DOM 129
11.1 DOM节点 129
11.1.1节点类型 131
11.1.2 childNodes属性 132
11.1.3 fiirstChild和lastChild 133
11.1.4 parentNode属性 133
11.1.5 nextSibling和previousSibling 133
11.1.6节点值 134
11.1.7节点名称 134
11.2利用getElementsByTagName()选择元素 134
11.3读取元素的属性 136
11.4 Mozilla的DOM查看器 136
11.5小结 137
11.6问答 137
11.7作业 137
11.7.1测验 138
11.7.2答案 138
11.8练习 138
第12章 使用脚本操作DOM 139
12.1创建节点 139
12.1.1 createElement() 140
12.1.2 createTextNode() 140
12.1.3 cloneNode() 140
12.2操作子节点 140
12.2.1 appendChild() 141
12.2.2 insertBefore() 141
12.2.3 replaceChild() 142
12.2.4 removeChild() 143
12.3编辑元素属性 144
12.4动态加载JavaScript文件 144
12.5小结 149
12.6问答 149
12.7作业 149
12.7.1测验 149
12.7.2答案 150
12.8练习 150
第13章JavaScript和CSS 151
13.1 CSS简介 151
13.1.1从内容分离样式 152
13.1.2 CSS样式声明 152
13.1.3在哪里保存样式声明 153
13.2 DOM的style属性 153
13.3使用className访问类 156
13.4 DOM的 styleSheets对象 157
启用、禁用和切换样式表 157
13.5小结 161
13.6问答 162
13.7作业 162
13.7.1测验 162
13.7.2答案 163
13.8练习 163
第14章 良好的编程习惯 164
14.1避免过度使用JavaScript 164
14.2编写易读和易维护的代码 165
14.2.1明智地使用注释 165
14.2.2使用适当的文件名称、属性名称和方法名称 166
14.2.3尽量复用代码 166
14.2.4不要假设 167
14.3平稳退化 167
14.4渐进增强 168
分离样式、内容和代码 168
14.5代码分离的JavaScript 168
14.5.1脱离HTML 169
14.5.2仅把JavaScript作为性能 增强手段 169
14.6功能检测 170
14.7妥善处理错误 171
使用try和catch 171
14.8小结 174
14.9问答 174
14.10作业 175
14.10.1测验 175
14.10.2答案 175
14.11练习 175
第15章 图形与动画 176
15.1预加载图像 176
15.2页面元素的动画 177
15.2.1 setTimeout() 177
15.2.2 setInterval() 178
15.3渐变不透明度 178
15.4 CSS3过渡、转换和动画 179
15.5 DOM移位 180
15.6优化性能 181
15.6.1使用单个定时器 181
15.6.2避免为DOM树深层次的元素创建动画效果 181
15.6.3使用尽可能低的帧速率 181
15.7小结 184
15.8问答 184
15.9作业 184
15.9.1测验 184
15.9.2答案 185
15.10练习 185
第四部分Ajax 189
第16章Ajax入门 189
16.1Ajax解析 189
16.1.1Ajax入门 190
16.1.2 XMLHHttpRequest对象 190
16.1.3与服务器通信 190
16.1.4服务器端 191
16.1.5处理服务器响应 191
16.1.6总结 191
16.2 XMLHttpRequest对象 192
16.3创建XMLHHttpRequest的实例 192
16.3.1不同浏览器的不同规则 192
16.3.2跨浏览器的解决方案 193
16.3.3方法和属性 193
16.3.4 open()方法 194
16.3.5 send()方法 194
16.4发送服务器请求 195
处理浏览器缓存 195
16.5监视服务器状态 197
16.5.1 readyState属性 197
16.5.2服务器响应状态代码 197
16.6回调函数 198
16.7 responseText和responseXML属性 198
16.7.1 responseText属性 199
16.7.2 responseXML属性 199
16.8小结 201
16.9问答 201
16.10作业 202
16.10.1测验 202
16.10.2答案 202
16.11练习 202
第17章 创建简单的Ajax库 203
17.1Ajax库 203
17.1.1目标 203
17.2库的实现 204
17.2.1创建XMLHttpRequest实例 204
17.2.2 GET和POST请求 204
17.2.3回调函数 205
17.2.4实现Ajax调用 205
17.3使用Ajax库 207
17.4小结 211
17.5问答 211
17.6作业 211
17.6.1测验 211
17.6.2答案 212
17.7练习 212
第18章 解决Ajax问题 213
18.1调试Ajax程序 213
18.1.1 Firebug 213
18.1.2 IE 216
18.2常见Ajax错误 217
18.2.1“返回”按钮 217
18.2.2书签和链接 217
18.2.3给用户的反馈 218
18.2.4让Ajax平稳退化 218
18.2.5应对搜索引擎嗅探 218
18.2.6突出活跃页面元素 218
18.2.7避免在不适宜的场合使用Ajax 219
18.2.8安全 219
18.2.9多浏览器平台测试 219
18.3常见编程注意事项 220
18.3.1 GET请求与浏览器缓存 220
18.3.2“拒绝访问”错误 220
18.3.3转义序列 220
18.4小结 220
18.5问答 221
18.6作业 221
18.6.1测验 221
18.6.2答案 221
18.7练习 222
第五部分 使用JavaScript库 225
第19章 利用库简化工作 225
19.1为什么要使用库? 225
19.2库能做什么? 226
19.3常见的库 226
19.3.1 Prototype框架 226
19.3.2 Dojo 226
19.3.3 Yahoo!UI 227
19.3.4 MooTools 227
19.3.5 jQuery 227
19.4 prototype.js介绍 227
19.4.1$()函数 228
19.4.2 $F()函数 228
19.4.3 Form对象 228
19.4.4 Try.these()函数 228
19.4.5用Ajax对象包装XMLHttpRequest 229
19.5小结 232
19.6问答 232
19.7作业 232
19.7.1测验 232
19.7.2答案 232
19.8练习 233
第20章jQuery入门 234
20.1在页面里引用jQuery 234
20.1.1下载jQuery 234
20.1.2使用远程方式 235
20.2 jQuery的$(document).ready处理器 235
20.3选择页面元素 236
20.4操作HTML内容 236
20.4.1 html() 236
20.4.2 text() 237
20.4.3 attr() 237
20.5显示和隐藏元素 237
20.5.1 show() 238
20.5.2 hide() 238
20.5.3 toggle() 238
20.6元素动画 239
20.6.1淡入淡出 239
20.6.2滑动 239
20.6.3动画 240
20.7命令链 240
20.8处理事件 243
20.9使用j Query实现Ajax 243
20.9.1 load() 243
20.9.2 get()和post() 244
20.9.3 ajax() 244
20.10小结 246
20.11问答 246
20.12作业 247
20.12.1 测验 247
20.12.2答案 247
20.13练习 247
第21章jQuery UI(用户界面)库 248
21.1 j Query UI是什么 248
21.2如何在页面里引用j Query UI 249
使用ThemeRoller 249
21.3交互 249
21.3.1拖和放 249
21.3.2调整大小 252
21.3.3排序 253
21.4使用微件 254
21.4.1可折叠控件 254
21.4.2日期拾取器 255
21.4.3选项卡 256
21.5小结 258
21.6问答 258
21.7作业 258
21.7.1测验 258
21.7.2答案 259
21.8练习 259
第六部分JavaScript与其他Web技术的配合 263
第22章JavaScript与多媒体 263
22.1多媒体格式 263
22.1.1音频格式 263
22.1.2视频格式 264
22.1.3浏览器插件 264
22.2使用锚点标签 265
22.3使用〈embed〉和〈object〉 265
22.3.1使用〈embed〉 266
22.3.2使用〈obj ect〉 266
22.3.3 JavaScript和插件 266
22.3.4插件功能探测 266
22.4 Flash 267
22.5小结 270
22.6问与答 270
22.7作业 270
22.7.1测验 270
22.7.2答案 271
22.8练习 271
第23章HTML5与JavaScript 272
23.1 HTML5的新标签 272
23.2一些重要的新元素 273
23.2.1使用〈video〉回放视频 273
23.2.2利用canPlayType()测试可用的格式 274
23.2.3控制回放 275
23.2.4用〈 audio〉标签播放声音 275
23.3.5利用〈canvas〉在页面上绘图 276
23.4拖放 278
23.5本地存储 280
23.6操作本地文件 281
查看浏览器的支持情况 281
23.7小结 283
23.8问答 283
23.9作业 284
23.9.1测验 284
23.9.2答案 284
23.10练习 284
第24章Web页面之外的JavaScript 285
24.1浏览器之外的JavaScript 285
24.2编写Google Chrome扩展 286
24.2.1建立简单的扩展程序 286
24.2.2调试扩展程序 288
24.2.3下一步 293
24.3小结 293
24.4问答 293
24.5作业 293
24.5.1测验 294
24.5.2答案 294
24.6练习 294
第七部分 附录 297
附录A JavaScript开发工具 297
A.1编辑器 297
A.1.1 Notepad ++++ 297
A.1.2 jEdit 297
A.1.3 SciTE 298
A.1.4 Geany 298
A.2验证程序 298
A.2.1 W3C验证服务 298
A.2.2 Web设计组(WDG) 298
A.3调试与检验工具 298
A.3.1 Firebug 299
A.3.2 JSLint 299
附录B JavaScript快速参考 300