第0章 准备浏览器 1
0.1 网页的执行环境——浏览器 2
0.2 不可不知的浏览器发展史 2
0.3 支持HTML5的浏览器 3
第1章 HTML5简介和编写规范 7
1.1 HTML5的新特性 8
1.1.1 实现Web应用程序 8
1.1.2 用于更好地呈现内容 8
1.2 HTML5轻松入门 9
1.2.1 使用XML语法编写HTML5文档 9
1.2.2 使用HTML语法编写HTML5文档 13
1.2.3 HTML5文档的构成 15
1.3 标准、规范和实现 16
1.3.1 实现 16
1.3.2 万维网和W3C 17
第2章 HTML5元素和文档语法格式 19
2.1 使用HTML5元素和属性 20
2.1.1 标签 20
2.1.2 元素和元素的形式 21
2.1.3 元素的类型 22
2.1.4 属性的定义 23
2.1.5 属性值的定义 23
2.1.6 元素和属性的大小写规范 24
2.2 全局属性 25
2.3 XML语法格式和HTML语法格式的不同 27
2.4 XHTML1.0和HTML5的区别 31
2.5 指定自然语言 31
2.5.1 自然语言的作用 31
2.5.2 语言代码 32
2.5.3 语言代码的继承 33
2.5.4 浏览器对语言代码的解释 34
2.6 使用注释 34
第3章 在网页中使用JavaScript脚本语言 35
3.1 了解脚本语言 36
3.1.1 客户端脚本 36
3.1.2 服务端脚本 36
3.2 在HTML文档中使用脚本代码 36
3.2.1 使用script元素定义脚本代码 37
3.2.2 在事件属性值中定义脚本 39
3.2.3 在超链接中定义脚本 40
3.3 浏览器不支持脚本时应注意的问题 41
3.3.1 noscript元素 41
3.3.2 关于隐藏脚本数据 43
3.4 关于DHTML 44
3.5 相同Origin策略的限制——同源策略 44
3.5.1 了解Origin 44
3.5.2 放松相同起点限制 44
第4章 JavaScript和HTML5浏览器对象模型(BOM) 47
4.1 定时器——间隔调用和延迟调用 48
4.1.1 使用setInterval()方法和clearInterval()方法实现间隔调用 48
4.1.2 范例——创建打字机效果 49
4.1.3 使用setTimeout()方法和clearTimeout()方法 50
4.2 基本的交互操作 51
4.2.1 警告对话框 51
4.2.2 确认对话框 51
4.2.3 提示输入消息对话框 52
4.2.4 使用增强的交互式对话框 53
4.2.5 范例——使用交互式对话框相互传值 54
4.2.6 打印 57
4.3 窗口交互操作 57
4.3.1 打开新窗口 57
4.3.2 关闭窗口 59
4.3.3 取消文档加载 60
4.3.4 获取窗口引用 60
4.3.5 焦点处理 60
4.4 网页和浏览器交互 61
4.5 浏览历史管理 61
4.6 地址管理 63
4.7 浏览器信息 65
4.7.1 检测浏览器类型 67
4.7.2 自定义架构处理 68
4.7.3 自定义内容类型处理 70
4.7.4 手动处理storage独占访问权 70
第5章 HTML5 DOM和HTML5网络应用程序 71
5.1 了解DOM 72
5.1.1 DOM基于节点树的表现形式 72
5.1.2 什么是HTML DOM 74
5.1.3 什么是接口 75
5.2 使用DOM访问元素 76
5.2.1 遍历节点树 77
5.2.2 使用getElementsByTagName()方法 81
5.2.3 使用getElementsByName()方法和getter属性 83
5.2.4 使用getElementById()方法 85
5.2.5 使用getElementsByClassName()方法 86
5.2.6 了解Node接口 86
5.2.7 了解节点类型 87
5.2.8 了解Element接口 88
5.2.9 了解HTMLElement接口 88
5.3 HTML5 DOM复杂数据类型 90
5.3.1 HTMLCollection接口 90
5.3.2 HTMLAllCollection接口 91
5.3.3 HTMLFormControlsCollection接口 92
5.3.4 HTMLOptionsCollection接口 93
5.3.5 HTMLPropertiesCollection接口 94
5.3.6 DOMTokenList接口 94
5.3.7 DOMSettableTokenList接口 95
5.3.8 DOMStringMap接口 95
5.3.9 DOMException接口 95
5.3.10 NodeList接口 96
5.3.11 RadioNodeList接口 97
5.4 修改HTML文档 98
5.4.1 创建新节点 98
5.4.2 为元素节点添加文本节点 98
5.4.3 为元素节点添加新属性 100
5.4.4 将元素节点插入到文档中 101
5.4.5 使用innerHTML属性、outerHTML属性和insertAdjacentHTML()方法 104
5.4.6 通过克隆的方法创建元素节点 104
5.4.7 删除HTML文档中的元素节点、属性和内容 105
5.4.8 使用replaceChild()方法替换节点 108
5.5 根据CSS选择符访问元素 109
第6章 使用Web Workers优化JavaScript执行——多线程 111
6.1 Web Workers入门 112
6.1.1 检查浏览器支持 112
6.1.2 求素数的复杂运算 112
6.1.3 使用Web Workers入门 113
6.2 Web Workers规范API 115
6.2.1 Worker的定义、类型 115
6.2.2 Worker中可以使用的API 116
6.2.3 创建Worker 119
6.2.4 处理运行时错误 120
6.3 创建和使用专职Worker 120
6.3.1 终止Worker 120
6.3.2 消息的互传 121
6.4 创建和使用共享Worker 122
6.4.1 消息的互传 123
6.4.2 连接同一个共享Worker 124
第7章 使用新的结构元素构建网页 127
7.1 文档结构元素 128
7.1.1 〈article〉元素 128
7.1.2 〈section〉元素 131
7.1.3 〈aside〉元素 132
7.1.4 〈nav〉元素 136
7.1.5 〈header〉元素 137
7.1.6 〈footer〉元素 138
7.2 标题和标题组合 139
7.3 〈address〉元素 141
7.4 浏览器兼容 141
第8章 建立HTML5新式表单 143
8.1 认识和建立HTML表单 144
8.1.1 建立表单 145
8.1.2 使用DOMAPI控制表单 146
8.2 使用input元素创建表单控件 146
8.2.1 HTML5新增的input控件类型 148
8.2.2 新功能属性 152
8.2.3 表单重写属性 157
8.2.4 使用DOM API控制input元素 158
8.2.5 使用File API处理上载文件 161
8.2.6 使用File API获取文件内容 162
8.3 HTML5的新表单元素 164
8.3.1 datalist元素 165
8.3.2 keygen元素 165
8.3.3 output元素 165
8.3.4 progress元素 166
8.3.5 meter元素 167
8.4 使用DOM API验证控件 169
8.5 结果良好的控件 171
8.6 使用CSS呈现表单控件 173
第9章 HTML5视频和音频 175
9.1 〈video〉元素 176
9.1.1 视频格式 176
9.1.2 属性 177
9.1.3 全兼容设置 178
9.2 〈source〉元素 178
9.3 〈audio〉元素 179
9.4 自定义视频和音频控制 181
9.5 使用HTML5 DOM动态控制 182
9.5.1 关于Media元素 183
9.5.2 出错处理 185
9.5.3 关于状态 186
9.5.4 其他属性 186
9.5.5 使用方法控制媒体 188
9.5.6 检测媒体支持 188
9.5.7 媒体事件 188
9.6 安全和隐私 190
9.7 浏览器支持 190
第10章 使用画布在网页上绘制图——Canvas 191
10.1 使用Canvas绘图的基本步骤 192
10.1.1 绘制第一幅图 192
10.1.2 理解坐标 193
10.2 关于HTML5 DOM Canvas API 193
10.3 使用CanvasRenderingContext2D 196
10.3.1 颜色、渐变和模式 199
10.3.2 线条粗细、线帽和线条结合 203
10.3.3 阴影 204
10.3.4 绘制矩形 205
10.3.5 全局设置——混合模式 206
10.3.6 全局设置——透明度 207
10.4 创建和渲染路径 208
10.4.1 了解图形和路径 208
10.4.2 绘制直线线条 209
10.4.3 线条和填充 210
10.4.4 绘制弧线 210
10.4.5 绘制曲线 211
10.4.6 绘制矩形路径 212
10.4.7 绘制剪切路径 213
10.4.8 重置路径和关闭子路径 214
10.4.9 检测路径点 214
10.4.10 焦点外廓 215
10.5 插入图片 216
10.6 转换、旋转、平移和缩放 218
10.7 绘制文本 220
10.8 像素级绘制 221
10.8.1 基本使用方法 221
10.8.2 创建反相 223
10.8.3 分解通道 224
10.8.4 通道混合器 226
10.9 保存和恢复绘画状态 231
10.10 使用Canvas实现动画 231
10.10.1 太极旋转 232
10.10.2 绘制动态时钟 235
第11章 Web存储 239
11.1 Web存储与Cookie 240
11.2 使用Web存储 240
11.2.1 在客户端持久存储数据 240
11.2.2 关于浏览器兼容 241
11.2.3 在会话期存储数据 242
11.3 Storage接口 243
11.3.1 获取和更新存储 246
11.3.2 清除存储 247
11.3.3 清除指定的键 247
11.3.4 添加新键和更新键值 248
11.4 Storage事件 248
第12章 本地数据库 251
12.1 使用Web SQL Database 252
12.1.1 第一个Web SQL Database应用 252
12.1.2 使用Web SQL Database的基本步骤 254
12.2 异步数据库 256
12.2.1 执行数据库事务 257
12.2.2 数据库版本管理 259
12.2.3 执行SQL语句 260
12.3 同步数据库 262
12.3.1 执行数据库事务 263
12.3.2 数据库版本管理 265
12.3.3 执行SQL语句 266
12.4 处理数据库操作结果 267
12.5 错误和异常 268
12.6 数据库设计基本知识 269
12.6.1 关于数据库 270
12.6.2 设计数据库 271
12.7 SQL语法入门 274
12.7.1 语法基础知识 274
12.7.2 定义记录集的列 276
12.7.3 限制记录集中的记录 276
12.7.4 对记录集中的记录进行排序 278
12.7.5 联接表 279
12.7.6 在“开发人员工具”中使用SQL语句 283
12.8 SQLite SQL语法和数据库的数据类型 284
12.9 SQL注入缺陷和参数化查询 286
第13章 离线网络应用程序——文件缓存 289
13.1 使用离线应用 290
13.1.1 配置MIME类型 290
13.1.2 创建离线应用网页及网页中要引用的资源 292
13.1.3 创建清单文件 293
13.1.4 测试离线应用 293
13.1.5 更新离线存储 293
13.2 缓存清单文件格式 294
13.2.1 定义要缓存的文件 295
13.2.2 备抵机制 296
13.2.3 在线白名单 296
13.2.4 注释 297
13.3 使用DOM方法处理离线应用 297
13.3.1 获取缓存 298
13.3.2 检查状态 298
13.3.3 更新缓存 299
13.3.4 监听事件 300
13.3.5 检测脱机模式 302
第14章 丰富的交互操作功能 305
14.1 内容可编辑 306
14.1.1 使用DOM方法处理可编辑元素 307
14.1.2 实用范例——可编辑的表格 308
14.1.3 使整个文档都可以被编辑 309
14.2 “撤销”和“重做”操作的管理 310
14.3 拖放功能 311
14.3.1 元素的拖动 312
14.3.2 元素的拖放 313
14.3.3 文件的拖放 315
14.3.4 使用W3C File API实现文件拖放 317
14.3.5 拖放事件 319
14.3.6 DataTransfer对象 320
14.4 处理选择的内容 321
14.4.1 处理网页内容选择的API 321
14.4.2 文本框选择 324
14.5 编辑API 325
14.5.1 命令 325
14.5.2 创建富文本编辑器 329
14.6 其他交互功能 331
14.6.1 滚动到视点 331
14.6.2 隐藏元素内容 331
14.6.3 通过热键访问元素内容 333
14.6.4 拼写和语法检查 334
14.6.5 焦点管理 334
第15章 跨文档消息传输——Cross Document Messaging 337
15.1 框架间传递消息 338
15.2 网页之间互相发送消息 339
第16章 新的服务器通信技术 343
16.1 服务器推送技术 344
16.1.1 使用Server-Sent Event入门 344
16.1.2 服务器要求 346
16.1.3 使用EventSource对象 347
16.1.4 在WebWorkers中使用EventSource对象 349
16.2 套接字连接 351
16.2.1 使用Web Socket入门 351
16.2.2 关于Web Socket通信协议 354
16.2.3 使用WebSocket对象 355
第17章 地理位置定位 357
17.1 了解位置定位 358
17.1.1 位置定位是怎么工作的 359
17.1.2 位置定位的精确度 359
17.2 使用Geolocation 359
17.2.1 获取Geolocation对象 359
17.2.2 获取当前地理位置 360
17.2.3 处理位置信息 361
17.2.4 出错处理 362
17.2.5 配置项 363
17.2.6 持续追踪位置 364
17.3 地理位置定位和在线地图结合使用 364
17.3.1 反向Geolocation——将经度/纬度转换为地名 364
17.3.2 与Google Map结合使用 365
17.3.3 使用Google Maps JavaScript API 370
附录A HTML5和HTML4.0元素对比 373
附录B HTML常用自然语言及语言代码对照表 379
附录C 常用字符集速查表 381
附录D input元素type属性值与input元素属性匹配索引 383
附录E HTML4.0和HTML5事件属性对照表 385
附录F XML语法规范和文档编写指南 389
F.1 书写XML文档 389
F.1.1 XML声明 389
F.1.2 对比XML和HTML 392
F.1.3 XML设计的指导方针 395
F2 XML文档的组成和规则 396
F.2.1 XML元素 396
F.2.2 属性 397
F.2.3 元素名称和属性名称的定义规则 398
F.2.4 区分元素和标签 398
F.2.5 XML文档的定义规则 399
F.2.6 子元素、父元素、同辈元素 399
F.2.7 XML注释 400
F.2.8 PCDATA和CDATA 401
F.2.9 CDATA段和转义字符 401
F.2.10 处理指令 402
F.3 格式良好的XML文档 403
F.4 XML文档的树视图和容器视图 404
F.5 XML命名空间 404
F.5.1 命名空间的定义和默认命名空间 405
F.5.2 对元素使用命名空间 406
F.5.3 对属性使用命名空间 407
F.5.4 什么是完全限定名和本地名 408
F.5.5 命名空间的应用方面 408
F.6 XML的3个特殊属性声明 410
附录G HTML标签对的使用及元素可用属性速查手册 413
附录H 参考文献以及资料来源 417