第1章HTML5概述 1
1.1HTML5发展史 1
1.2关于2022年的那个神话 2
1.3谁在开发HTML5 3
1.4新的认识 3
1.4.1兼容性和存在即合理 3
1.4.2效率和用户优先 4
1.4.3化繁为简 5
1.4.4通用访问 5
1.5无插件范式 5
1.6HTML5的新功能 8
1.6.1新的DOCTYPE和字符集 8
1.6.2新元素和旧元素 9
1.6.3语义化标记 10
1.6.4使用SelectorsAPI简化选取操作 15
1.6.5JavaScript日志和调试 18
1.6.6window.JSON 19
1.6.7DOMLevel3 19
1.6.8Monkeys、Squirrelfish和其他JavaScript引擎 19
1.7小结 21
第2章CanvasAPI 22
2.1HTML5Canvas概述 22
2.1.1历史 22
2.1.2canvas是什么 23
2.1.3canvas坐标 23
2.1.4什么情况下不用canvas 23
2.1.5替代内容 24
2.1.6CSS和canvas 25
2.1.7浏览器对HTML5Canvas的支持情况 25
2.2使用HTML5CanvasAPI 25
2.2.1检测浏览器支持情况 25
2.2.2在页面中加入canvas 26
2.2.3变换 28
2.2.4路径 30
2.2.5描边样式 32
2.2.6填充样式 34
2.2.7填充矩形区域 34
2.2.8绘制曲线 35
2.2.9在canvas中插入图片 37
2.2.10渐变 38
2.2.11背景图 40
2.2.12缩放canvas对象 42
2.2.13Canvas变换 43
2.2.14Canvas文本 45
2.2.15应用阴影 46
2.2.16像素数据 48
2.2.17Canvas的安全机制 50
2.3使用HTML5Canvas创建应用 51
2.3.1进阶功能之全页玻璃窗 54
2.3.2进阶功能之为Canvas动画计时 54
2.4小结 57
第3章SVG 58
3.1SVG概述 58
3.1.1历史 58
3.1.2理解SVG 59
3.1.3可缩放图形 61
3.1.4使用SVG创建2D图形 61
3.1.5在页面中添加SVG 61
3.1.6简单的形状 62
3.1.7变换SVG元素 63
3.1.8复用内容 64
3.1.9图案和渐变 64
3.1.10SVG路径 65
3.1.11使用SVG文本 66
3.1.12组合场景 67
3.2使用SVG创建交互式应用 68
3.2.1添加树 69
3.2.2添加updateTrees函数 69
3.2.3添加removeTree函数 70
3.2.4添加CSS样式 70
3.2.5最终代码 70
3.3小结 74
第4章音频和视频 75
4.1HTML5Audio和Video概述 75
4.1.1视频容器 75
4.1.2音频和视频编解码器 76
4.1.3HTML5Audio和Video的限制 77
4.1.4audio元素和video元素的浏览器支持情况 77
4.2使用HTML5AudiO和VideoAPI 78
4.2.1浏览器支持性检测 79
4.2.2可访问性 79
4.2.3理解媒体元素 80
4.2.4使用audio元素 85
4.2.5使用video元素 86
4.2.6进阶功能 93
4.3小结 95
第5章GeolocationAPI 96
5.1位置信息 96
5.1.1纬度和经度坐标 96
5.1.2位置信息从何而来 97
5.1.3IP地址地理定位数据 98
5.1.4GPS地理定位数据 98
5.1.5Wi-Fi地理定位数据 98
5.1.6手机地理定位数据 99
5.1.7用户自定义的地理定位数据 99
5.2HTML5Geolocation的浏览器支持情况 99
5.3隐私 100
5.3.1触发隐私保护机制 101
5.3.2处理位置信息 101
5.4使用HTML5GeolocationAPI 102
5.4.1浏览器支持性检查 102
5.4.2位置请求 102
5.5使用HTML5Geolocation构建应用 107
5.5.1编写HTML显示代码 109
5.5.2处理Geolocation数据 110
5.5.3最终代码 112
5.6进阶功能 115
5.6.1现在的状态是什么 115
5.6.2在GoolgeMap上显示“我在这里” 117
5.7小结 118
第6章CommunicationAPI 119
6.1跨文档消息通信 119
6.1.1理解源安全 122
6.1.2跨文档消息通信的浏览器支持情况 122
6.1.3使用postMessageAPI 123
6.1.4使用postMessageAPI创建应用 124
6.2XMLHttpRequestLevel2 128
6.2.1跨源XMLHttpRequest 129
6.2.2进度事件 130
6.2.3HTML5XMLHttpRequestLevel2的浏览器支持情况 131
6.2.4使用XMLHttpRequestAPI 131
6.2.5创建XMLHttpRequest应用 133
6.3进阶功能 136
6.3.1结构化的数据 136
6.3.2Framebusting 136
6.4小结 137
第7章WebSocketsAPI 138
7.1WebSockets概述 138
7.1.1实时和HTTP 138
7.1.2解读WebSockets 140
7.2编写简单的EchoWebSocket服务器 145
7.3使用HTML5WebSocketsAPI 153
7.3.1浏览器支持情况检测 153
7.3.2API的基本用法 154
7.4创建HTML5WebSockets应用程序 158
7.4.1编写HTML文件 159
7.4.2添加WebSocket代码 160
7.4.3添加Geolocation代码 160
7.4.4合并所有内容 161
7.4.5最终代码 163
7.5小结 165
第8章FormsAPI 166
8.1HTML5Forms概述 166
8.1.1HTMLForms与XForms 166
8.1.2功能性表单 167
8.1.3HTML5Forms的浏览器支持情况 167
8.1.4输入型控件目录 168
8.2使用HTML5FormsAPI 172
8.2.1新的表单特性和函数 172
8.2.2表单验证 175
8.2.3验证反馈 178
8.3构建HTML5Forms应用 180
8.4小结 185
第9章拖放 186
9.1Web拖放发展史 186
9.2HTML5拖放概述 187
9.2.1蓝图 187
9.2.2需要记住的事件 189
9.2.3设置元素可施动 192
9.2.4传输和控制 192
9.3构建拖放应用 193
9.4拖放文件 201
9.5进阶功能 205
9.6小结 206
第10章WebWorkersAPI 207
10.1WebWorkers的浏览器支持情况 208
10.2使用WebWorkersAPI 208
10.2.1浏览器支持性检查 208
10.2.2创建WebWorkers 209
10.2.3多个JavaScript文件的加载与执行 209
10.2.4与HTML5WebWorkers通信 209
10.3编写主页 210
10.3.1处理错误 211
10.3.2停止WebWorkers 212
10.3.3WebWorkers的嵌套使用 212
10.3.4使用定时器 213
10.3.5示例代码 213
10.4构建WebWorkers应用 214
10.4.1编写blur.js辅助脚本 216
10.4.2编写blur.html应用页面 217
10.4.3编写blurWorker.js 218
10.4.4与WebWorker通信 218
10.4.5运行程序 219
10.4.6示例代码 220
10.5小结 225
第11章WebStorageAPI 226
11.1HTML5WebStorage概述 226
11.2WebStorage的浏览器支持情况 227
11.3使用WebStorageAPI 227
11.3.1检查浏览器的支持性 227
11.3.2设置和获取数据 229
11.3.3封堵数据泄漏 230
11.3.4localStorage与sessionStorage 230
11.3.5WebStorageAPI的其他特性和函数 232
11.3.6更新WebStorage后的通信 234
11.3.7探索WebStorage 235
11.4构建WebStorage应用 236
11.5浏览器数据库存储展望 247
11.5.1WebSQLDatabase 247
11.5.2索引数据库API 250
11.6进阶功能 251
11.6.1JSON对象的存储 251
11.6.2共享窗口 252
11.7小结 253
第12章构建离线Web应用 254
12.1HTML5离线Web应用概述 254
12.2使用HTML5离线Web应用API 256
12.2.1检查浏览器的支持情况 256
12.2.2搭建简单的离线应用程序 256
12.2.3支持离线行为 257
12.2.4manifest文件 257
12.2.5applicationCacheAPI 259
12.2.6运行中的应用缓存 260
12.3使用HTML5离线Web应用构建应用 261
12.3.1创建记录资源的manifest文件 263
12.3.2创建构成界面的HTML和CSS 264
12.3.3创建离线JavaScript 264
12.3.4检查applicationCache的支持情况 266
12.3.5为Update按钮添加处理函数 266
12.3.6添加Geolocation跟踪代码 267
12.3.7添加Storage功能代码 267
12.3.8添加离线事件处理程序 268
12.4小结 268
第13章HTML5未来展望 269
13.1HTML5的浏览器支持情况 269
13.2HTML未来的发展 269
13.2.1WebGL 270
13.2.2设备 272
13.2.3音频数据API 272
13.2.4触摸屏设备事件 272
13.2.5P2P网络 275
13.2.6最终方向 275
13.3小结 275