第一篇 JavaScript入门 1
第1章 必须了解的JavaScript知识&. 1
1.1 认识JavaScript 1
1.1.1 什么是JavaScript 1
1.1.2 JavaScript的特点 1
1.2 JavaScript与Java的区别 2
1.2.1 基于对象和面向对象 2
1.2.2 解释和编译 3
1.2.3 强变量和弱变量 3
1.2.4 代码格式不同 3
1.2.5 嵌入方式不同 3
1.2.6 静态联编和动态联编 3
1.3 JavaScript程序运行开发环境 4
1.4 JavaScript的优点与局限性 4
1.5 小结 5
1.6 常见面试题分析 5
1.7 本章习题 5
第2章 第一个例子——向用户说“你好” 6
2.1 第一个例子 6
2.1.1 最简单的程序——“用户你好” 6
2.1.2 在HrML中插入JavaScript块 7
2.1.3 JavaScript代码书写规则 8
2.2 JavaScript基础知识——变量和常量 9
2.2.1 变量命名规则 9
2.2.2 数据类型 10
2.3 告诉用户当前时间 11
2.3.1 什么是内置对象 11
2.3.2 内置对象Date的方法 12
2.3.3 获取时间和日期 13
2.4 在Web页上输出 14
2.4.1 弹出警告框——alert 14
2.4.2 弹出确认“是/否”的对话框——confirm 14
2.4.3 输出到页面内容——document.write 15
2.5 改进版的“你好”程序 16
2.6 小结 17
2.7 常见面试题分析 17
2.8 本章习题 17
第3章 获取用户的输入 18
3.1 示例:让用户输入两个数字,然后输出相加的结果 18
3.2 JavaScript基础知识——操作符和表达式 19
3.2.1 什么叫表达式 19
3.2.2 什么叫操作符 19
3.2.3 什么是优先级 21
3.3 “一加一等于几?”变量类型转换 21
3.4 JavaScript基础知识——字符串初探 23
3.4.1 什么是字符串 23
3.4.2 字符串的书写与转义符 24
3.4.3 字符串操作 24
3.5 示例:让用户输入自己的名字,输出写给用户的情书 27
3.6 小结 29
3.7 常见面试题分析 29
3.8 本章习题 29
第4章 简单的表单操作 30
4.1 示例:确认表单必填项目完整性 30
4.2 JavaScript基础知识——函数 31
4.2.1 函数和变量作用域 31
4.2.2 函数的参数和返回值 34
4.2.3 什么是递归调用 35
4.3 在表单提交时调用检查函数——绑定事件到表单 37
4.3.1 什么是事件 37
4.3.2 如何绑定事件 39
4.4 发生了什么——获取事件的内容 40
4.5 表单元素的属性和方法 42
4.6 综合应用示例——更人性化的表单 44
4.7 小结 45
4.8 常见面试题分析 46
4.9 本章习题 46
第5章 小游戏——算24 47
5.1 示例:电脑帮你算24 47
5.2 JavaScript基础知识——条件判断 50
5.2.1 if语句 51
5.2.2 switch语句 52
5.2.3 不同类型数据的比较和逻辑操作 53
5.3 JavaScript基础知识——循环 54
5.3.1 for循环 54
5.3.2 while循环 56
5.3.3 break和continue 57
5.4 JavaScript基础知识——数组对象 57
5.4.1 如何引用数组对象 58
5.4.2 数组对象的属性和方法 59
5.5 内置eval函数和错误捕获机制 60
5.6 小结 62
5.7 常见面试题分析 63
5.8 本章习题 63
第6章 物理问题——炮弹的射程 64
6.1 示例:由初速度和仰角求射程 64
6.2 数学计算——内置对象Math的属性和方法 66
6.3 Math对象应用——科学计算器 67
6.4 随机函数和彩票游戏 71
6.5 小结 75
6.6 常见面试题分析 75
6.7 本章习题 76
第二篇 JavaScript和页面的交互第7章 用Cookie在客户端保存信息 77
7.1 示例:用Cookie实现可以记住内容的表单 77
7.2 什么是Cookie 80
7.2.1 HTTP协议简介 80
7.2.2 Cookie存在的意义 81
7.2.3 Cookie的优点和限制 82
7.3 把输入框的内容保存在客户端——使用Cookie 83
7.3.1 Cookie的保存和读取 83
7.3.2 字符串的编码 84
7.4 Cookie的有效期、域和路径 86
7.4.1 Cookie的有效期和清除Cookie的方法 86
7.4.2 用Cookie实现记事贴 87
7.4.3 Cookie的域和路径及Cookie欺骗 88
7.5 小结 90
7.6 常见面试题分析 90
7.7 本章习题 91
第8章 操作窗口和框架 92
8.1 示例:模拟Live Messenger的振动闪屏功能 92
8.2 控制窗口——窗口对象的事件、属性和方法 94
8.2.1 获取窗口的改变——窗口对象的事件 94
8.2.2 控制窗口的行为——窗口对象的方法 97
8.3 打开一个新窗口——窗口的“open”方法详解 99
8.3.1 “open”方法的参数说明 99
8.3.2 检测弹窗动作是否被拦截 101
8.3.3 色彩选择器——“open”方法的应用 102
8.4 在网页中使用自定义的对话框 105
8.4.1 模拟Windows帮助效果——弹出式窗体的应用 106
8.4.2 模式对话框和非模式对话框 108
8.5 延时函数的使用 111
8.5.1 定时函数的设定和取消 111
8.5.2 综合应用——动态提示窗口 113
8.6 可以收起的分栏——改变框架的分隔比例 115
8.6.1 嵌套窗口的结构 115
8.6.2 可以收起和展开的侧边框架 116
8.6.3 跨窗口调用JavaScript脚本 118
8.7 小结 118
8.8 常见面试题分析 118
8.9 本章习题 119
第9章 控制你的表单——内容验证 120
9.1 示例:表单数据的有效性验证 120
9.2 用正则来判断复杂的文本规则 124
9.2.1 什么是正则 124
9.2.2 正则的优势 124
9.2.3 正则的格式和含义 127
9.2.4 用RegExp函数创建正则对象 129
9.2.5 示例代码中正则的详细解释 129
9.3 文本的编码和加密——正则和字符串操作 130
9.3.1 字符串的搜索、匹配 130
9.3.2 字符串的替换 132
9.4 正则对象的属性和方法 136
9.4.1 正则对象的属性 137
9.4.2 正则对象的方法 137
9.5 正则示例应用——UBB代码转换 139
9.6 小结 141
9.7 常见面试题分析 141
9.8 本章习题 142
第10章 控制表单——和用户的操作交互 143
10.1 示例:随用户操作而变化的表单 143
10.2 用户操作会激发的事件 146
10.2.1 onchange事件 146
10.2.2 鼠标和键盘事件 148
10.3 表单的状态变化 149
10.3.1 只读和不可用状态的改变 149
10.3.2 显示和隐藏 150
10.4 表单的内容变化 150
10.4.1 文本框内容 150
10.4.2 单选框和复选框的选取 151
10.4.3 下拉列表框的联动 151
10.5 小结 153
10.6 常见面试题分析 153
10.7 本章习题 153
第11章 复杂的跑马灯 154
11.1 示例:一个向左弹性滑入、向上滑出的跑马灯 154
11.2 用JavaScript控制内联CSS 158
11.2.1 CSS名称和JavaScript属性的对应 158
11.2.2 内联CSS样式的读取 164
11.2.3 内联CSS样式的设置和单位 166
11.2.4 示例:放大缩小文字 169
11.3 用JavaScript控制非内联CSS 171
11.3.1 样式表“styleSheet”对象 171
11.3.2 用样式表对象实现切换皮肤的功能 173
11.3.3 样式规则“rule”对象 175
11.4 确定页面元素的位置 178
11.4.1 CSS2.0的盒模型 178
11.4.2 绝对定位和相对定位 180
11.5 给HTML元素添加自定义的属性和方法 182
11.6 小结 184
11.7 常见面试题分析 184
11.8 本章习题 184
第12章 走近DOM——构造导航列表 185
12.1 示例:可自定义的导航列表 185
12.2 DOM——文档对象模型 190
12.2.1 DOM结构简述 191
12.2.2 获取浏览器信息——“navigator”对象 192
12.2.3 操作剪贴板——“clipboardData”对象 193
12.2.4 操作浏览器的历史记录——“history”对象 196
12.2.5 获取当前页面的URL——“location”对象 196
12.2.6 读取用户的屏幕分辨率——“screen”对象 197
12.3 使用DOM的“document”对象 198
12.3.1 “document”对象特有的属性 198
12.3.2 “document”对象特有的方法 200
12.3.3 执行打印、全选等命令——“execCommand”方法 203
12.4 插入和删除元素 208
12.4.1 在容器元素的末尾插入元素——“appendChild”方法 208
12.4.2 在指定的元素前插入元素——“insertBefore”方法 210
12.4.3 “appendChild”与“insertBefore”方法的其他运用 210
12.4.4 删除节点——“removeChild”方法 211
12.5 小结 211
12.6 常见面试题分析 211
12.7 本章习题 212
第13章 DOM应用——可排序的分页表格 213
13.1 示例:可以按不同列排序、支持分页的表格 213
13.2 表格对象的结构与动态改变表格 221
13.2.1 xHTML简介 221
13.2.2 表格布局和DIV布局 221
13.2.3 表格对象的结构 222
13.2.4 表格对象的方法和集合 223
13.2.5 文本节点的使用 224
13.3 排序算法 225
13.3.1 排序的基本概念 226
13.3.2 示例:冒泡排序 226
13.3.3 示例:快速排序 228
13.3.4 示例:插入排序 231
13.3.5 示例:希尔(Shell)排序 233
13.3.6 各种排序算法的比较和选择 235
13.4 绑定数据到表格 236
13.4.1 实现数据绑定的逻辑结构 236
13.4.2 示例:简单的数据绑定 237
13.4.3 向页面中添加数据源 238
13.4.4 将数据源绑定到HTML元素 241
13.4.5 示例:数据绑定模型与分页 243
13.4.6 数据绑定模型的事件 246
13.5 小结 247
13.6 常见面试题分析 247
13.7 本章习题 248
第14章 用JS操作CSS滤镜——构造一个自己的相册 249
14.1 示例:自动缩放、有预载功能的相册 249
14.2 JavaScript操作CSS界面滤镜 253
14.2.1 示例:载入透明的“PNG”文件——“AlphaImageLoader”滤镜 253
14.2.2 示例:插入渐变背景——“Gradient”滤镜 256
14.3 JavaScript操作CSS静态滤镜 259
14.3.1 示例:透明渐变效果——“Alpha”滤镜 259
14.3.2 灰度、X光、镜像效果——“BasicImage”滤镜 260
14.3.3 模糊效果——“Blur”滤镜 261
14.3.4 自定义透明色——“Chroma”滤镜 262
14.3.5 示例:混合不同的显示——“Compositor”滤镜 263
14.3.6 阴影效果——“DropShadow”滤镜和“Shadow”滤镜 265
14.3.7 示例:给对象添加光源——“Light”滤镜 266
14.3.8 示例:旋转对象——“Matrix”滤镜 269
14.3.9 其他静态滤镜效果 271
14.4 JavaScript操作CSS动态滤镜 273
14.4.1 CSS动态滤镜支持的通用属性和方法 273
14.4.2 示例:模拟开关门效果——“Barn”滤镜 274
14.4.3 网格推拉转换效果——“CheckerBoard”滤镜 275
14.4.4 示例:多功能的转换效果——“RevealTrans”滤镜 276
14.4.5 其他动态滤镜效果(一) 278
14.4.6 其他动态滤镜效果(二) 280
14.5 图片预载和尺寸控制 282
14.6 小结 283
14.7 常见面试题分析 283
14.8 本章习题 283
第三篇 JavaScript高级操作 285
第15章 JavaScript操作视频控件 285
15.1 示例:通用媒体播放器 285
15.2 “ActiveX”控件简介 288
15.2.1 “ActiveX”控件的意义 289
15.2.2 在HTML页面中使用“ActiveX”控件 290
15.3 JavaScript操作Windows Media Player播放器 292
15.3.1 在网页中插入“Windows Media Player”控件 293
15.3.2 “Windows Media Player”控件的脚本对象模型(一) 295
15.3.3 “Windows Media Player”控件的脚本对象模型(二) 300
15.3.4 “Windows Media Player”控件的脚本对象模型(三) 307
15.3.5 “Windows Media Player”控件的脚本对象模型(四) 312
15.3.6 “Firefox”浏览器对“Windows Media Player”控件的支持 315
15.4 使用Real Player控件播放流媒体文件 316
15.4.1 在Web页面中插入“Real Player”控件 316
15.4.2 “Real Player”控件支持的属性 316
15.4.3 “Real Player”控件支持的方法 317
15.5 小结 321
15.6 常见面试题分析 321
15.7 本章习题 321
第16章 JavaScript操作XML 322
16.1 示例:载入XML文件并实现查询或修改 322
16.2 初识XML 327
16.2.1 XML简介 327
16.2.2 XML文档的结构 328
16.2.3 在Web页面中使用XML 330
16.3 XML控件的文档对象 331
16.3.1 XML文档对象的属性和方法 331
16.3.2 使用XML文档对象对XML进行校验 334
16.3.3 异步载入远程XML文件 335
16.3.4 “documentElement”对象 338
16.4 XML控件的节点对象 339
16.4.1 XML控件的节点对象类型 339
16.4.2 XML元素节点的属性和方法 339
16.4.3 动态生成新的XML文档 341
16.4.4 移动XML元素在文档中的位置 345
16.4.5 利用XSL样式表转换XML 348
16.5 在XML文档中查找节点——“XPath” 350
16.5.1 在XML控件应用中使用“XPath” 350
16.5.2 “XPath”简介 351
16.5.3 “XPath”语法 351
16.5.4 “XPath”中的“轴”与运算符 353
16.6 小结 355
16.7 常见面试题分析 355
16.8 本章习题 356
第17章 JavaScript操作本地文件 357
17.1 示例:文件浏览器 357
17.2 FSO对象和浏览器安全性限制 363
17.3 文件系统对象 365
17.3.1 FSO对象的属性和遍历驱动器集合 365
17.3.2 FSO对象的方法(一) 367
17.3.3 FSO对象的方法(二) 370
17.4 文件、文件夹和文本流对象 373
17.4.1 文件对象的属性和方法 373
17.4.2 文件夹对象的属性和方法 378
17.4.3 文本流对象的属性和方法 379
17.5 FSO应用示例——文本加密与解密 380
17.6 小结 384
17.7 常见面试题分析 385
17.8 本章习题 385
第18章 面向对象编程——JavaScript中的类与继承 386
18.1 面向对象编程简介 386
18.1.1 传统编程方法的不足 386
18.1.2 面向对象的基本概念 387
18.1.3 面向对象编程的特征 388
18.1.4 面向对象编程的要素 388
18.2 JavaScript中的类 389
18.2.1 JavaScript中类的构造 389
18.2.2 JavaScript类的属性和方法 390
18.2.3 JavaScript类的原型——“prototype” 392
18.3 JavaScript的封装与继承 395
18.3.1 JavaScript的封装 395
18.3.2 JavaScript的继承 399
18.3.3 获取函数对象的调用参数 401
18.3.4 获取函数对象的上级函数 403
18.4 示例:构造一个菜单类 406
18.5 小结 413
18.6 常见面试题分析 413
18.7 本章习题 413
第四篇 实例和框架 415
第19章 JavaScript综合应用——模拟窗口 415
19.1 可拖动的模拟窗口 415
19.1.1 模拟窗口特效的功能目标设计 416
19.1.2 模拟窗口特效的HTML内容 417
19.1.3 模拟窗口特效所用的样式表内容 419
19.2 模拟窗口的自动构造 421
19.2.1 初始化脚本环境和通用的函数 421
19.2.2 模拟窗口特效中用到的通用函数 423
19.2.3 初始化模拟窗口对象 425
19.3 模拟窗口的自定义方法和事件 429
19.3.1 窗口的拖动与缩放效果 430
19.3.2 禁止选取——“onselectstart”事件 436
19.3.3 模拟窗口的自定义方法 437
19.3.4 自定义的定时器对象 444
19.4 小结 446
第20章 使用第三方框架(程序库) 447
20.1 使用Ajax框架 447
20.1.1 使用一个微型的框架Sack 447
20.1.2 使用一个有用的表单验证框架checkForm 460
20.1.3 相关资源 474
20.2 使用jQuery框架 476
20.2.1 jQuery框架介绍 476
20.2.2 jQuery框架示例 476
20.2.3 jQuery的插件介绍——Thickbox 479
20.2.4 相关资源 480
20.3 Prototype框架和其他更多的框架介绍 480
20.4 小结 481
20.5 常见面试题分析 481
20.6 本章习题 482