第一篇 JavaScript入门 1
第1章 JavaScript简介 1
1.1什么是JavaScript 1
1.2 JavaScript与Java的区别 2
1.3 JavaScript程序运行开发环境 3
1.4 JavaScript的优点与局限 3
1.5小结 4
第2章 第1个例子——向用户说“你好” 5
2.1第1个例子 5
2.1.1最简单的程序——“用户你好” 5
2.1.2在HTML中插入JavaScript块 5
2.1.3 JavaScript代码书写规则 6
2.2 JavaScript基础知识——变量和常量 7
2.2.1变量命名规则 7
2.2.2数据类型 9
2.3告诉用户当前时间 9
2.3.1什么是内置对象 10
2.3.2内置对象Date的方法 10
2.3.3获取时间和日期 11
2.4在Web页上输出 12
2.4.1弹出警告框——alert 12
2.4.2弹出确认“是/否”的对话框——confirm 12
2.4.3输出到页面内容——document.write 13
2.5改进版的“你好”程序 14
2.6小结 15
第3章 获取用户的输入 16
3.1实例:让用户输入两个数字,然后输出相加的结果 16
3.2 JavaScript基础知识——操作符和表达式 17
3.2.1什么是表达式 17
3.2.2什么是操作符 17
3.2.3什么是优先级 19
3.3变量类型转换 19
3.4 JavaScript基础知识——字符串初探 21
3.4.1什么是字符串 21
3.4.2字符串的书写与转义符 21
3.4.3字符串操作 22
3.5实例:让用户输入自己的名字,输出写给用户的情书 24
3.6小结 26
第4章 简单的表单操作 27
4.1实例:确认表单必填项目完整性 27
4.2 JavaScript基础知识——函数 28
4.2.1函数和变量作用域 28
4.2.2函数的参数和返回值 31
4.2.3什么是递归调用 32
4.3在表单提交时调用检查函数——绑定事件到表单 33
4.3.1什么是事件 33
4.3.2如何绑定事件 35
4.4发生了什么?——获取事件的内容 36
4.5表单元素的属性和方法 38
4.6综合应用——更人性化的表单 39
4.7小结 41
第5章 小游戏——算二十四 42
5.1实例:电脑帮你算二十四 42
5.2 JavaScript基础知识——条件判断 45
5.2.1 if语句 45
5.2.2 switch语句 47
5.2.3不同类型数据的比较和逻辑操作 48
5.3 JavaScript基础知识——循环 49
5.3.1 for循环 49
5.3.2 while循环 51
5.3.3 break和continue 51
5.4 JavaScript基础知识——数组对象 52
5.4.1如何引用数组对象 52
5.4.2数组对象的属性和方法 53
5.5内置eval函数和错误捕获机制 54
5.6小结 56
第6章 物理问题——炮弹的射程 58
6.1实例:由初速度和仰角求射程 58
6.2数学计算——内置对象Math的属性和方法 60
6.3 Math对象应用——科学计算器 61
6.4随机函数和彩票游戏 65
6.5小结 69
第二篇 JavaScript和页面的交互 71
第7章 用Cookie在客户端保存信息 71
7.1实例:用Cookie实现可以记住内容的表单 71
7.2什么是Cookie 73
7.2.1 HTTP简介 74
7.2.2 Cookie存在的意义 75
7.2.3 Cookie的优点和限制 75
7.3把输入框的内容保存在客户端——使用Cookie 76
7.3.1 Cookie的保存和读取 76
7.3.2字符串的编码 78
7.4 Cookie的有效期、域和路径 79
7.4.1 Cookie的有效期和清除 80
7.4.2用Cookie实现记事贴 80
7.4.3 Cookie的域和路径及Cookie欺骗 82
7.5小结 83
第8章 操作窗口和框架 84
8.1实例:模拟Live Messenger的振动闪屏功能 84
8.2控制窗口——窗口对象的事件、属性和方法 85
8.2.1获取窗口的改变——窗口对象的事件 85
8.2.2控制窗口的行为——窗口对象的方法 88
8.3打开一个新窗口——窗口的“open”方法详解 90
8.3.1 “open”方法的参数说明 90
8.3.2检测弹窗动作是否被拦截 92
8.3.3色彩选择器——“open”方法的应用 94
8.4在网页中使用自定义的对话框 97
8.4.1模拟Windows帮助效果——弹出式窗体的应用 97
8.4.2模式对话框和非模式对话框 99
8.5延时函数的使用 102
8.5.1定时函数的设定和取消 102
8.5.2综合应用——动态提示窗口 104
8.6可以收起的分栏——改变框架的分割比例 106
8.6.1嵌套窗口的结构 106
8.6.2可以收起和展开的侧边框架 106
8.6.3跨窗口调用JavaScript脚本 108
8.7小结 109
第9章 控制表单——内容验证 110
9.1实例:表单数据的有效性验证 110
9.2用正则来判断复杂的文本规则 114
9.2.1什么是正则 1
9.2.2正则的优势 114
9.2.3正则的格式和含义 116
9.2.4用RegExp函数创建正则对象 119
9.2.5示例代码中正则的详细解释 119
9.3文本的编码和加密——正则和字符串操作 120
9.3.1字符串的搜索、匹配 120
9.3.2字符串的替换 122
9.4正则对象的属性和方法 126
9.4.1正则对象的属性 126
9.4.2正则对象的方法 126
9.5 正则应用——UBB代码转换 128
9.6小结 130
第10章 控制表单——和用户的操作交互 131
10.1实例:随用户操作而变化的表单 131
10.2用户操作会激发的事件 134
10.2.1 onchange事件 134
10.2.2鼠标和键盘事件 135
10.3表单的状态变化 136
10.3.1只读和不可用状态的改变 136
10.3.2显示和隐藏 137
10.4表单的内容变化 137
10.4.1文本框内容 137
10.4.2单选框和复选框的选取 138
10.4.3下拉列表框的联动 138
10.5小结 139
第11章 复杂的跑马灯 140
11.1实例:一个向左弹性滑入、向上滑出的跑马灯 140
11.2用JavaScript控制内联CSS 143
11.2.1 CSS名称和 JavaScript属性的对应 144
11.2.2内联CSS样式的读取 149
11.2.3内联CSS样式的设置和单位 151
11.2.4示例:放大缩小文字 155
11.3用JavaScript控制非内联CSS 156
11.3.1样式表“styleSheet”对象 157
11.3.2用样式表对象实现切换皮肤的功能 159
11.3.3样式规则“rule”对象 161
11.4确定页面元素的位置 163
11.4.1 CSS 2.0的盒模型 163
11.4.2绝对定位和相对定位 165
11.5给HTML元素添加自定义的属性和方法 167
11.6小结 169
第12章 走近DOM——构造导航列表 170
12.1实例:可自定义的导航列表 170
12.2 DOM——文档对象模型 175
12.2.1 DOM结构简述 175
12.2.2获取浏览器信息——“navigator”对象 176
12.2.3操作剪贴板——“clipboardData”对象 177
12.2.4操作浏览器的历史记录——“history”对象 180
12.2.5获取当前页面的URL——“location”对象 181
12.2.6读取用户的屏幕分辨率——“screen”对象 181
12.3使用DOM的“document”对象 182
12.3.1 “document”对象特有的属性 183
12.3.2 “document”对象特有的方法 184
12.3.3执行打印、全选等命令——“execCommand”方法 187
12.4插入和删除元素 192
12.4.1在容器元素的末尾插入元素——“appendChild”方法 192
12.4.2在指定的元素前插入元素——“insertBefore”方法 194
12.4.3 “appendChild”与“insertBefore”方法的其他运用 194
12.4.4删除节点——“removeChild”方法 195
12.5小结 195
第13章 DOM应用——可排序的分页表格 196
13.1实例:可以按不同列排序、支持分页的表格 196
13.2表格对象的结构与动态改变表格 203
13.2.1 xHTML简介 204
13.2.2表格布局和DIV布局 204
13.2.3表格对象的结构 205
13.2.4表格对象的方法和集合 206
13.2.5文本节点的使用 207
13.3排序算法 208
13.3.1排序的基本概念 208
13.3.2冒泡排序 208
13.3.3快速排序 211
13.3.4插入排序 213
13.3.5希尔(Shell)排序 215
13.3.6各种排序算法的比较和选择 217
13.4绑定数据到表格 218
13.4.1实现数据绑定的逻辑结构 218
13.4.2简单的数据绑定实例 219
13.4.3向页面中添加数据源 220
13.4.4将数据源绑定到HTML元素 222
13.4.5数据绑定模型与分页 225
13.4.6数据绑定模型的事件 228
13.5小结 229
第14章 用JS操作CSS滤镜——构造一个自己的相册 230
14.1实例:自动缩放、有预载功能的相册 230
14.2 JavaScript操作CSS界面滤镜 234
14.2.1载入透明“PNG”文件——“A1phaImageLoader”滤镜 234
14.2.2插入渐变背景——“Gradient”滤镜 236
14.3 JavaScript操作CSS静态滤镜 239
14.3.1透明渐变效果——“Alpha”滤镜 239
14.3.2灰度、X光、镜像效果——“BasicImage”滤镜 241
14.3.3模糊效果——“Blur”滤镜 242
14.3.4自定义透明色——“Chroma”滤镜 243
14.3.5混合不同的显示——“Compositor”滤镜 243
14.3.6阴影效果——“DropShadow”滤镜和“Shadow”滤镜 245
14.3.7给对象添加光源——“Light”滤镜 246
14.3.8旋转对象——“Matrix”滤镜 249
14.3.9其他静态滤镜效果 251
14.4 JavaScript操作CSS动态滤镜 252
14.4.1 CSS动态滤镜支持的通用属性和方法 252
14.4.2模拟开关门效果——“Barn”滤镜 253
14.4.3网格推拉转换效果——“CheckerBoard”滤镜 255
14.4.4多功能的转换效果——“RevealTrans”滤镜 256
14.4.5其他动态滤镜效果(1) 257
14.4.6其他动态滤镜效果(2) 259
14.5图片预载和尺寸控制 261
14.6小结 262
第三篇 操作ActiveX控件 263
第15章JavaScript操作视频控件 263
15.1实例:通用媒体播放器 263
15.2 “ActiveX”控件简介 266
15.2.1 “ActiveX”控件的意义 266
15.2.2在HTML页面中使用“ActiveX”控件 267
15.3 JavaScript操作Windows Media Player播放器 270
15.3.1在网页中插入“Windows Media Player”控件 270
15.3.2 “Windows Media Player”控件的脚本对象模型(1) 272
15.3.3 “Windows Media Player”控件的脚本对象模型(2) 277
15.3.4 “Windows Media Player”控件的脚本对象模型(3) 284
15.3.5 “Windows Media Player”控件的脚本对象模型(4) 290
15.3.6 “Fire Fox”浏览器对“Windows Media Player”控件的支持 292
15.4使用Real Player控件播放流媒体文件 293
15.4.1在Web页面中插入“Real Player”控件 293
15.4.2 “Real Player”控件支持的属性 293
15.4.3 “Real Player”控件支持的方法 294
15.5小结 298
第16章 JavaScript操作XML 299
16.1实例:载入XML文件并实现查询或修改 299
16.2初识XML 304
16.2.1 XML简介 304
16.2.2 XML文档的结构 304
16.2.3在Web页面中使用XML 307
16.3 XML控件的文档对象 308
16.3.1 XML文档对象的属性和方法 308
16.3.2使用XML文档对象对XML进行校验 310
16.3.3异步载入远程XML文件 312
16.3.4 “documentElement”对象 315
16.4 XML控件的节点对象 315
16.4.1 XML控件的节点对象类型 315
16.4.2 XML元素节点的属性和方法 316
16.4.3动态生成新的XML文档 317
16.4.4移动XML元素在文档中的位置 321
16.4.5利用XSL样式表转换XML 324
16.5在XML文档中查找节点——“XPath” 326
16.5.1在XML控件应用中使用“XPath” 326
16.5.2 “XPath”简介 326
16.5.3 “XPath”语法 327
16.5.4 “XPath”中的“轴”与运算符 329
16.6小结 331
第17章 JavaScript操作本地文件 332
17.1实例:文件浏览器 332
17.2 FSO对象和浏览器安全性限制 338
17.3文件系统对象 339
17.3.1 FSO对象的属性和遍历驱动器集合 339
17.3.2 FSO对象的方法(1) 341
17.3.3 FSO对象的方法(2) 344
17.4文件、文件夹和文本流对象 347
17.4.1文件对象的属性和方法 347
17.4.2文件夹对象的属性和方法 351
17.4.3文本流对象的属性和方法 352
17.5 FSO应用——文本加密与解密 354
17.6小结 358
第18章 JavaScript操作数据库 359
18.1实例:Access数据库浏览器 359
18.2数据库技术基础 365
18.2.1关系型数据库简介 365
18.2.2 “OLE DB”和“ODBC”技术 365
18.2.3 “ADO”控件 366
18.3连接数据库 367
18.3.1 “Connection”对象的属性 367
18.3.2 “Connection”对象的方法 369
18.3.3 “ADO”控件连接对象综述 375
18.4执行SQL命令 376
18.4.1命令(Command)对象的属性 376
18.4.2命令(Command)对象的方法 378
18.4.3命令(Command)对象的使用概要 379
18.5处理获得的数据 380
18.5.1数据集(Recordset)对象的属性(1) 380
18.5.2数据集(Recordset)对象的属性(2) 383
18.5.3数据集(Recordset)对象的方法 385
18.5.4字段(Field)对象 389
18.6小结 389
第四篇 类和对象 391
第19章 JavaScript综合应用——模拟窗口 391
19.1可拖动的模拟窗口 391
19.1.1模拟窗口特效的功能目标设计 392
19.1.2模拟窗口特效的HTML内容 392
19.1.3模拟窗口特效所用的样式表内容 394
19.2模拟窗口的自动构造 396
19.2.1初始化脚本环境和通用的函数 397
19.2.2模拟窗口特效中用到的通用函数 398
19.2.3初始化模拟窗口对象 399
19.3模拟窗口的自定义方法和事件 404
19.3.1窗口的拖动与缩放效果 404
19.3.2禁止选取——“onselectstart”事件 410
19.3.3模拟窗口的自定义方法 411
19.3.4自定义的定时器对象 418
19.4小结 420
第20章 面向对象编程——JavaScript中的类与继承 421
20.1面向对象编程简介 421
20.1.1传统编程方法的不足 421
20.1.2面向对象的基本概念 422
20.1.3面向对象编程的特征 422
20.1.4面向对象编程的要素 423
20.2 JavaScript中的类 423
20.2.1 JavaScript中类的构造 424
20.2.2 JavaScript类的属性和方法 424
20.2.3 JavaScript类的原型——“prototype 426
20.3 JavaScript的封装与继承 430
20.3.1 JavaScript的封装 430
20.3.2 JavaScript的继承 433
20.3.3获取函数对象的调用参数 435
20.3.4获取函数对象的上级函数 437
20.4构造一个菜单类 439
20.5小结 447
第21章 用JS来画图——VML和behavior 448
21.1实例:用VML画出正弦和余弦曲线 448
21.2页面行为“Behavior”与“HTC” 450
21.2.1 “Behavior”简介 450
21.2.2 “HTC”文件的基本书写规范 451
21.2.3 “HTC”文件中的特殊标记名(1) 451
21.2.4 “HTC”文件中的特殊标记名(2) 455
21.2.5综合示例——菜单组件 460
21.3用VML画图 464
21.3.1使用默认的“behavior”组件 464
21.3.2在DHTML页面中使用VML 465
21.3.3一个简单的画圆的例子 465
21.3.4直线、折线、矩形——“VML”预定义形状 466
21.3.5设置画笔属性——“Stroke”标记 468
21.3.6设置填充效果——“Fill”标记 470
21.4综合应用——JavaScript与VML交互 472
21.5小结 474
第五篇 无刷新的用户体验和Ajax 475
第22章 Ajax初步——无刷新表单提交 475
22.1实例:使用Ajax无刷新地获取页面 475
22.2认识Ajax 478
22.2.1什么是Ajax 478
22.2.2提交数据给服务器与HTTP 479
22.2.3非同步处理的意义 480
22.3 Ajax与“XMLHTTP”控件 481
22.3.1建立“XMLHTTP”对象 481
22.3.2“Ajax”的简单操作模型 482
22.3.3 “XMLHTTP”控件的属性 486
22.3.4 “XMLHTTP”控件的方法 487
22.4综合:替代表单提交的“Ajax”示例 489
22.5小结 492
第23章 Ajax应用——构造动态载入节点的树 493
23.1轻量级的数据交换——认识“JSON” 493
23.1.1什么是“JSON” 493
23.1.2 “JSON”的基本格式 493
23.1.3 “JSON”的优缺点 496
23.2 JavaScript实现导航树——设计与Ajax 497
23.2.1树的数据结构 498
23.2.2导航树的页面结构 498
23.2.3代码实现——“Ajax”部分(1) 499
23.2.4代码实现——“Ajax”部分(2) 502
23.3 JavaScript实现导航树——DOM构建与事件方法 506
23.3.1导航树的全局变量与DOM构造函数 506
23.3.2 HTML导航树的事件和自定义方法 509
23.3.3在HTML页面中使用导航树 512
23.4小结 513
第24章 常见的Ajax框架介绍 514
24.1什么是框架 514
24.1.1框架的定义 514
24.1.2框架和设计模式的关系 515
24.1.3为什么要用框架 515
24.1.4框架技术的特点 515
24.2 “Prototype”框架 516
24.2.1 “Prototype”框架简介 516
24.2.2 “Prototype”框架功能详解——使用实用函数 517
24.2.3 “Prototype”框架功能详解——Ajax.Request类 520
24.2.4 “Prototype”框架功能详解——Ajax.Updater类 521
24.3 “jQuery”框架 522
24.3.1 “jQuery”框架功能详解——使用实用函数 523
24.3.2 “jQuery”框架功能详解——“Ajax”支持 524
24.4小结 526
附录 JavaScript常用对象的方法和属性 527